Grok et surcharge variable host


(Charles-Henri Boust) #1

Bonjour,

Je remarque une différence sur le traitement du champ "host" entre le filter "grok" et "csv".

Par exemple, ce filtre me surcharge correctement la valeur "host" avec ce qu'il y a dans le csv

      csv {
           separator => ";"
             columns => [ "host","instance","date_injection","heure_injection","codeans","poids","fichier_err" ]
        remove_field => [ "message","beat.hostname","beat.name","input_type","offset" ]
      }
    }

tandis que ce filtre ne fait que rajouter une seconde valeur au tableau host (la valeur issue de beat.hostname + celle issue du filter)

    grok {
             match => [ "message", "\[%{TIMESTAMP_ISO8601:timestamp}\](\[%{WORD:host}\])(\[%{WORD:hostFrom}\])(\[%{WORD:login}\])(\[%{WORD:user}\])(\[%{WORD:tbx_name}\])(\[%{WORD:entree}\])\s%{GREEDYDATA:message}" ]
         overwrite => [ "message" ]
      remove_field => [ "beat.hostname","beat.name","input_type","offset" ]
    }

Comme je ne veux pas créer de champ à profusion et que j'utilise dans tous mes index une notion de "hostname", autant utiliser "host" qui est déjà implémentée.
Mais comment s'assurer d'avoir la valeur souhaitée, et ici comment avec grok surcharger correctement "host" avec la valeur que l'on veut ?

Merci pour vos retours :slightly_smiling:

Charles


(Charles-Henri Boust) #2

Bonjour,

la solution :

grok {
         match => [ "message", "\[%{TIMESTAMP_ISO8601:timestamp}\](\[%{WORD:host}\])(\[%{WORD:hostFrom}\])(\[%{WORD:login}\])(\[%{WORD:user}\])(\[%{WORD:tbx_name}\])(\[%{WORD:entree}\])\s%{GREEDYDATA:message}" ]
     overwrite => [ "message","host" ]
}

Tout simplement ...

:slight_smile:


(system) #3