2017-02-08 1 views
0

Mon filtre de logstash corrige le débogueur mais n'affiche pas les champs lors de la recherche du message exact avec lequel j'ai testé dans kibana. Voici mon filtre:Filtre Logstash correct dans le débogueur mais ne fonctionne pas lors de la recherche dans kibana

filter { 
if [type] == "syslog" { 
    grok { 
    match => { 'message' => '%{SYSLOG5424LINE}' } 
    } 
    syslog_pri { 
    syslog_pri_field_name => 'syslog5424_pri' 
    } 
    date { 
    match => [ 'syslog5424_ts', 'ISO8601' ] 
    } 
} 

et voici un exemple de mon message de journal:

<134>1 2017-01-23T10:54:44.587136-08:00 mcmp mapp - - close ('xxx', 32415) 

}

Il semble que le isnt filtre l'application, je remis en marche mon service logstash et contrôlé le débogueur grok. Une idée de ce qui ne va pas?

+0

Lorsque vous dites que cela ne fonctionne pas, vous voulez dire que vous recevez les messages avec tags => _grokparsefailure? ou vous obtenez pas de sortie? – Alcanzar

+0

Je reçois les messages, et un tas de champs comme timestamp, type, syslog_severity, ... Etc. Mais ce ne sont pas les champs que j'ai spécifiés dans mon filtre grok. J'obtiens grokparsefailure aussi bien mais je peux voir le message et les champs, et mon grok s avec mes messages dans mes champs spécifiés dans le grok le débogueur de grok. –

Répondre

1

Il semble que cela fonctionne correctement pour moi.

J'ai créé test.conf avec:

input { 
    stdin {} 
} 
filter { 
    grok { 
    match => { 'message' => '%{SYSLOG5424LINE}' } 
    } 
    syslog_pri { 
    syslog_pri_field_name => 'syslog5424_pri' 
    } 
    date { 
    match => [ 'syslog5424_ts', 'ISO8601' ] 
    } 
} 

output { 
    stdout { codec => "rubydebug" } 
} 

puis testé comme ceci:

echo "<134>1 2017-01-23T10:54:44.587136-08:00 mcmp mapp - - close ('xxx', 32415)" | bin/logstash -f test.conf 

Et l'événement donne en sortie:

{ 
    "syslog_severity_code" => 6, 
     "syslog_facility" => "local0", 
    "syslog_facility_code" => 16, 
      "syslog5424_ver" => "1", 
       "message" => "<134>1 2017-01-23T10:54:44.587136-08:00 mcmp mapp - - close ('xxx', 32415)", 
      "syslog5424_app" => "mapp", 
      "syslog5424_msg" => "close ('xxx', 32415)", 
     "syslog_severity" => "informational", 
        "tags" => [], 
       "@timestamp" => 2017-01-23T18:54:44.587Z, 
      "syslog5424_ts" => "2017-01-23T10:54:44.587136-08:00", 
      "syslog5424_pri" => "134", 
       "@version" => "1", 
        "host" => "xxxx", 
     "syslog5424_host" => "mcmp" 
} 

qui a tous les champs que contient le canevas SYSLOG5424LINE.

+0

Génial. Merci pour vos commentaires! Je ne savais pas comment le tester comme ça, je n'ai regardé que dans mon interface kibana. Je suppose que le problème ne réside pas dans le filtre de logstash mais quelque part dans le flux de données dans ma pile ELK. –

+0

content d'être utile – Alcanzar

+0

J'ai donc testé avec des fichiers de configuration de débogage comme vous le faisiez dans la ligne de commande, et j'obtiens le même résultat, mais dans Kibana j'ai les mêmes anciens champs. On dirait que le filtre ne s'applique pas ... –