2017-03-21 7 views
0

Ich benutze Logstash zum ersten Mal und ich versuche, meine Protokolle mit einem Grok-Filter, setzen sie auf eine ElasticSearch und Visualisierung mit .Logstash Filter Grok für benutzerdefinierte Log

Dies ist meine aktuelle Situation:

Filter

filter { 
    grok { 
    match => { "message" => "%{TIMESTAMP:timestamp} | %{WORD:trackingId} | %{WORD:request} | %{WORD:session} | %{IP:client} | 
     %{WORD:userId} | %{GREEDYDATA:message}" } 
    } 
} 

Log

2017-03-21 11:11:54.731 | myApp_35 | myApp_35 | 69E59F4DACC314C0B11B1A8CEA87F9BB | 127.0.0.1 | | GET on URL [/api/customer] executed with success in [18555 us]. 

Anscheinend funktioniert nicht. Was mache ich falsch?

Antwort

1

Versuchen Sie, diese

%{TIMESTAMP_ISO8601:timestamp}%{SPACE}\|%{SPACE}%{WORD:trackingId}%{SPACE}\|%{SPACE}%{WORD:request}%{SPACE}\|%{SPACE}%{WORD:session}%{SPACE}\|%{SPACE}%{IP:client}%{SPACE}\|%{SPACE}%{DATA:userId}%{SPACE}\|%{SPACE}%{GREEDYDATA:message} 

auf OPs Basierend hier Kommentar ist eine andere Regex mit SPACE durch \ ersetzt s *

%{TIMESTAMP_ISO8601:timestamp}\s*\|\s*%{WORD:trackingId}\s*\|\s*%{WORD:request}\s*\|\s*%{WORD:session}\s*\|\s*%{IP:client}\s*\|\s*%{DATA:userId}\s*\|\s*%{GREEDYDATA:message} 

Ich würde diese Seite empfehlen Ihre grok regex zu testen: https://grokdebug.herokuapp.com/

+0

Wow, diese Webapp ist verrückt! Ich versuche deine Lösung. Wird in ein paar Minuten eine Rückmeldung geben: D – Nano

+0

Ich habe den Kommentar gelöscht, den ich in der obigen Frage gestellt habe, um jede Verwirrung zu vermeiden. – htulsiani

+0

Offenbar funktionierte% {SPACE} nicht. Ich habe es durch ein einfaches Leerzeichen ersetzt und alles hat gut funktioniert! Kannst du die Antwort ändern? Dann werde ich es akzeptieren :) – Nano