Bonjour et merci pour vos réponses.

Le problème du « grok » c’est que demain si dans mon « message » j’ai un nouvel 
« @blabla » qui s’ajoute, je vais devoir le retravailler or le but de la manip 
c’est que tout se fasse automatiquement car clairement je ne suis pas maître du 
message émis initialement.

Je pensais plus aux « filters » mais je n’ai pas eu de succès jusqu’à présent…

Merci quand même,
Jonathan

De : FRsAG [mailto:frsag-boun...@frsag.org] De la part de Jocelyn Lagarenne
Envoyé : jeudi 5 mai 2016 16:49
À : Guillaume Hilt <fr...@shadowprojects.org>
Cc : French SysAdmin Group <frsag@frsag.org>
Objet : Re: [FRsAG] [Problem] Logstash/Kibana

j'ai pas mal travaillé avec logstash/elastic pendant un moment.
De memoire le champs "message" que logstash rajoute est le "log brut" qu'il 
reçoit. si tu n'as pas les champs deja découpé en field c'est que tu n'as les 
bon filtre (parser). il faut soit:
- trouve un filtre deja existant si ton log est standard, par exemple pour les 
apache etc
- sinon il faut que tu parses toi meme via logstash les champs. ce n'est pas 
tres dur mais la syntaxe est un peu crade. si dessous un exemple que j'ai fait 
pour parser des logs de mon pfsense:



dans la conf filter de logstash:

if [prog] =~ /^filterlog$/ {
                        mutate {
                                remove_field => [ "msg", "datetime" ]
                        }
                        grok {
                                patterns_dir => "/etc/logstash/patterns"
                                        match => [ "message", 
"%{PFSENSE_LOG_DATA}%{PFSENSE_IP_SPECIFIC_DATA}%{PFSENSE_IP_DATA}%{PFSENSE_PROTOCOL_DATA}"]

---
cette partie vérifie que j'ai un champ "prog" qui contient "filterlog"
et avec le filtre (pattern matching) "grok" je decoupe le champ "message" en 
respectant mes patterns qui sont les suivantes:

[...]
PFSENSE_LOG_DATA 
(%{INT:rule}),(%{INT:sub_rule}),,(%{INT:tracker}),(%{WORD:iface}),(%{WORD:reason}),(%{WORD:action}),(%{WORD:direction}),(%{INT:ip_ver}),
PFSENSE_IP_SPECIFIC_DATA 
(%{PFSENSE_IPv4_SPECIFIC_DATA}|%{PFSENSE_IPv6_SPECIFIC_DATA})
PFSENSE_IPv4_SPECIFIC_DATA 
(%{BASE16NUM:tos}),,(%{INT:ttl}),(%{INT:id}),(%{INT:offset}),(%{WORD:flags}),(%{INT:proto_id}),(%{WORD:proto}),
[...]


ce n'est qu'un extrait mais ça devrait deja t'aider à mieux comprendre. cherche 
sur le net il y a beaucoup de tutorial, par exemple 
https://blog.jocelynlagarenne.fr/jsn/index.php/integration/102-elasticsearch-log-analyser
 ;)

2016-05-04 14:48 GMT+02:00 Guillaume Hilt 
<fr...@shadowprojects.org<mailto:fr...@shadowprojects.org>>:

Il veut décoder le json en tableau et que chaque index du tableau devienne un 
filtre (donc un field avec sa checkbox).

Guillaume Hilt
Le 04/05/2016 à 12:30, Florent Rivoire a écrit :
2016-05-04 12:00 GMT+02:00 Lamarre, Jonathan 
<jonathan.lama...@coreye.fr<mailto:jonathan.lama...@coreye.fr>>:
Est-il possible de découper le message à chaque « @ »pour faire en sorte que 
chacun d’eux deviennent des fields à part entière et ainsi qu’ils s’ajoutent à 
la liste des fields par défaut dans l’interface Kibana ?
Si oui, comment ? Parce que j’ai testé pas mal de choses déjà qui se sont 
révélées infructueuses ☹

Je ne suis pas sur d'avoir compris ce que tu veux faire.
Tu devrais détailler clairement le format de tes données, essaie de donner un 
exemple de données de ton application et un exemple de json qui est indexé dans 
ElasticSearch (après le traitement par logstash donc).

Mais je pense que tu devrais regarder au niveau de logstash : il faut surement 
rajouter des options dans la partie "filter" de la configuration.
C'est à dire changer le traitement qui est fait avant l'indexation dans E.S, 
car Kibana ne pourra pas faire ce "split" par @ lui-même.

NB: j'ai l'impression que tu as 2 timestamp (celui à la racine mis par 
logstash, et celui dans ton field message que tu veux splitté), il faudrait 
surement que tu arrive au final à en avoir qu'un seul (via le filter "date" je 
pense), et qui soit à la racine, car c'est le schéma standard de la stack ELK.

--
Florent


_______________________________________________

Liste de diffusion du FRsAG

http://www.frsag.org/


_______________________________________________
Liste de diffusion du FRsAG
http://www.frsag.org/

_______________________________________________
Liste de diffusion du FRsAG
http://www.frsag.org/

Répondre à