2016-12-16 7 views
0

importer des journaux apache dans influxdb avec le plugin Telegraf et logparsermodèle personnalisé pour déposer les robots lors de l'importation des grumes en influxdb

Je veux filtrer tous les journaux de bots, donc je configurer un modèle personnalisé avec une expression régulière qui ne utilisateur-agent match qui ne contiennent pas les mots « bot » et « crawl »:

NOBOT ((?!bot|crawl).)* 
CUSTOM_LOG_FORMAT %{CLIENT:client_ip} %{NOTSPACE:ident} %{NOTSPACE:auth} \[%{HTTPDATE:ts:ts-httpd}\] "(?:%{WORD:verb:tag} %{NOTSPACE:request}(?: HTTP/%{NUMBER:http_version:float})?|%{DATA})" %{NUMBER:resp_code:tag} (?:%{NUMBER:resp_bytes:int}|-) %{QS:referrer} "%{NOBOT:agent}" 

mais cela ne fonctionne pas, zéro paramètres sont importés dans influxdb

l'expression rationnelle semble ok et il fonctionne très bien quand je l'ai testé ici: http://grokconstructor.appspot.com/do/match

Juste pour être sûr que j'ai essayé un simple regex:

BOT .*?bot.*? 
CUSTOM_LOG_FORMAT %{CLIENT:client_ip} %{NOTSPACE:ident} %{NOTSPACE:auth} \[%{HTTPDATE:ts:ts-httpd}\] "(?:%{WORD:verb:tag} %{NOTSPACE:request}(?: HTTP/%{NUMBER:http_version:float})?|%{DATA})" %{NUMBER:resp_code:tag} (?:%{NUMBER:resp_bytes:int}|-) %{QS:referrer} "%{BOT:agent}" 

et il fonctionne, Telegraf seulement les journaux d'importation contre les robots collecteurs mais je veux le contraire, je ne vois pas quel est le problème avec ((?!bot|crawl).)*

Répondre

0

Je ne sais pas pourquoi vous ne recevez pas un message d'erreur, mais malheureusement Go ne supporte pas l'air négatif: discontinues effectuées

https://play.golang.org/p/Kq5N2FgG6_

Hello, playground 
panic: regexp: Compile(`((?!bot|crawl).)*`): error parsing regexp: invalid or unsupported Perl syntax: `(?!` 

goroutine 1 [running]: 
panic(0x133400, 0x1050a140) 
    /usr/local/go/src/runtime/panic.go:500 +0x720 
regexp.MustCompile(0x149f1b, 0x11, 0x1, 0xb) 
    /usr/local/go/src/regexp/regexp.go:237 +0x1a0 
main.main() 
    /tmp/sandbox426143344/main.go:10 +0xe0 

Je vous recommande d'ouvrir un problème sur le repo github pour renvoyer un message d'erreur dans ces cas.

Quant à faire le match que vous essayez de faire, cela pourrait être utile: Negative Look Ahead Go regular expressions

+0

Merci, billet ouvert: https://github.com/influxdata/telegraf/issues/2178#issuecomment-268200504 – Matthieu