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).)*
Merci, billet ouvert: https://github.com/influxdata/telegraf/issues/2178#issuecomment-268200504 – Matthieu