2016-06-06 20 views
0

Ich verwende logstash, um Protokolleinträge aus einer Eingabeprotokolldatei zu analysieren.Formatieren des Datums in der Logstash-Konfiguration

Logline:

TID: [0] [] [2016-05-30 23:02:02,602] INFO {org.wso2.carbon.registry.core.jdbc.EmbeddedRegistryService} - Configured Registry in 572ms {org.wso2.carbon.registry.core.jdbc.EmbeddedRegistryService} 

Grok Muster:

TID:%{SPACE}\[%{INT:SourceSystemId}\]%{SPACE}\[%{DATA:ProcessName}\]%{SPACE}\[%{TIMESTAMP_ISO8601:TimeStamp}\]%{SPACE}%{LOGLEVEL:MessageType}%{SPACE}{%{JAVACLASS:MessageTitle}}%{SPACE}-%{SPACE}%{GREEDYDATA:Message} 

Mein grok Muster funktioniert gut. Ich sende diese Parse-Einträge zu einer von mir selbst erstellten Rest-Base-API.

Konfigurationen:

output { 
    stdout { } 
    http { 
     url => "http://localhost:8086/messages" 
     http_method => "post" 
     format => "json" 
     mapping => ["TimeStamp","%{TimeStamp}","CorrelationId","986565","Severity","NORMAL","MessageType","%{MessageType}","MessageTitle","%{MessageTitle}","Message","%{Message}"] 
    } 
} 

In der aktuellen Ausgabe, erhalte ich das Datum, wie es aus den Protokollen analysiert wird:

Stromausgang:

{ 
"TimeStamp": "2016-05-30 23:02:02,602" 
} 

Problemstellung:

Aber das Problem ist, dass meine API das Datum in einem solchen Format nicht erwartet, es erwartet das Datum im generischen xsd-Typ, datetime Format. Auch, wie unten erwähnt:

Erwartete Ausgabe:

{ 
"TimeStamp": "2016-05-30T23:02:02:602" 
} 

Kann jemand bitte leite mich, welche Änderungen ich habe in meinem Filter oder Ausgangszuordnung hinzufügen, um dieses Ziel zu erreichen.

+0

Sind Sie sicher über '201 6-05-30T23: 02: 02: 602'? Sollte es nicht "2016-05-30T23: 02: 02.602" sein, d.h. mit einer Periode vor den Millisekunden. – Val

Antwort

1

Um

2016-05-30 23:02:02,602 

zum XSD Datetime-Format

2016-05-30T23:02:02.602 

Sie einfach eine mutate/gsub filter um hinzufügen zu verwandeln den Raum Charakter mit einem T und die , mit einem .

zu ersetzen
filter { 
    mutate { 
    gsub => [ 
     "TimeStamp", "\s", "T", 
     "TimeStamp", ",", "." 
    ] 
    } 
} 
Verwandte Themen