2016-09-20 1 views
-1

Ich versuche, ein grok-Muster für das Logfile unten herauszufinden. Es enthält 1 Zeile des Erfolgsprotokolls und 1 Eintrag des Warnungsprotokolls.Wie schreibe ich grok für diese Log-Datei

2016-09-03T12:53:31-04:00 DEV SampleFileService INFO 512132:414618:SampleFileService-2-FTS EXECUTING: Error Handling Client Request started 

2016-09-03T12:53:31-04:00 DEV SampleFileService WARNING 512133:414618:SampleFileService-2-FTS ERROR: Error while sending ErrorHandler request to IEHS Queue: test.queue.publish 
Retry count 1 of 3, 
Error: 
<ns0:ErrorReport xmlns:ns0="http://www.tibco.com/pe/EngineTypes"> 
    <StackTrace>Job-414618 Error in [Process-Path!!] 
There was an unexpected error while sending a message. 
    at com.tibco.plugin.share.jms.impl.JMSSender.send(Unknown Source) 
    at com.tibco.plugin.share.jms.impl.JMSSender.send(Unknown Source) 
    at com.tibco.plugin.jms.JMSAbstractTransmitActivity.eval(Unknown Source) 
    at com.tibco.pe.plugin.Activity.eval(Unknown Source) 
    at com.tibco.pe.core.TaskImpl.eval(Unknown Source) 
    at com.tibco.pe.core.Job.a(Unknown Source) 
    at com.tibco.pe.core.Job.k(Unknown Source) 
    at com.tibco.pe.core.JobDispatcher$JobCourier.a(Unknown Source) 
    at com.tibco.pe.core.JobDispatcher$JobCourier.run(Unknown Source) 
caused by: com.tibco.plugin.share.jms.impl.JMSExceptionWrapper: javax.jms.JMSException: Failure storing message 
    at com.tibco.plugin.share.jms.impl.JMSPluginException.&lt;init&gt;(Unknown Source) 
    at com.tibco.plugin.share.jms.impl.JMSSender.send(Unknown Source) 
    at com.tibco.plugin.share.jms.impl.JMSSender.send(Unknown Source) 
    at com.tibco.plugin.jms.JMSAbstractTransmitActivity.eval(Unknown Source) 
    at com.tibco.pe.plugin.Activity.eval(Unknown Source) 
    at com.tibco.pe.core.TaskImpl.eval(Unknown Source) 
    at com.tibco.pe.core.Job.a(Unknown Source) 
    at com.tibco.pe.core.Job.k(Unknown Source) 
    at com.tibco.pe.core.JobDispatcher$JobCourier.a(Unknown Source) 
    at com.tibco.pe.core.JobDispatcher$JobCourier.run(Unknown Source) 
Caused by: javax.jms.JMSException: Failure storing message 
    at com.tibco.tibjms.Tibjmsx.buildException(Tibjmsx.java:612) 
    at com.tibco.tibjms.TibjmsxSessionImp._publish(TibjmsxSessionImp.java:1544) 
    at com.tibco.tibjms.TibjmsMessageProducer._publish(TibjmsMessageProducer.java:246) 
    at com.tibco.tibjms.TibjmsQueueSender.send(TibjmsQueueSender.java:74) 
    ... 9 more 
</StackTrace> 
    <Msg>There was an unexpected error while sending a message.</Msg> 
    <FullClass>com.tibco.plugin.share.jms.impl.JMSPluginException</FullClass> 
    <Class>JMSPluginException</Class> 
    <ProcessStack>Stack-Path!!</ProcessStack> 
    <MsgCode>BW-JMS-100039</MsgCode> 
</ns0:ErrorReport> 
+0

Können Sie zeigen, was Sie von Ihrem Protokoll zu extrahieren? Wenn es keine Informationen zum Abrufen gibt, ist der Grok-Filter nutzlos. – baudsp

+0

Auch um Ihnen zu helfen: [Grok Filter Tester] (http://grokconstructor.appspot.com/do/match#result), [Grok Filter Dokumentation] (https://www.elastic.co/guide/en/logstash /current/plugin-filters-grok.html) und [grok patterns] (https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns). – baudsp

+0

In Anbetracht der ersten Zeile sollte es sein Zeitstempel -> 2016-09-03T12: 53: 31-04: 00, Env -> Dev, Anwendung -> SampleFileService, Ebene -> Info, Thread -> 512132: 414618: SampleFileService-2-FTS, Status -> EXECUTING, Nachricht -> (Erinnerung der Nachricht) 2. Zeile hat mehr Informationen für das Feld 'Nachricht' .. –

Antwort

2

Sie finden die mehrzeilige filter/codec auf Ihrer Eingabe verwenden, um so alle Ihre Nachrichten zusammen gruppiert sind. Die Konfiguration ist das gleiche in beiden Fällen:

multiline { 
    pattern => "%{TIMESTAMP_ISO8601}" 
    negate => "true" 
    what => "previous" 
} 

Dieser Willen Gruppe der Linien nicht mit einem ISO 8601 mit dem vorherigen beginnen. Also im Falle Ihrer zweiten Nachricht wird die ganze Linie zusammen sein.

Dann können Sie dann dieses Muster grok verwenden:

grok { 
    match => { "message" => "%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{WORD:env}%{SPACE}%{WORD:application}%{SPACE}%{WORD:level}%{SPACE}%{NOTSPACE:thread}%{SPACE}%{WORD:status}:%{SPACE}%{GREEDYDATA:message}" } 
} 
+0

Ich habe einige Kombinationen, wie ein Neuling, die Pattern-Syntax ist wenig verwirrend. Die Logs, die ich analysieren wollte, hatten Tabulatoren (es stellte sich heraus, dass es ein "Leerzeichen" war, nachdem es hier eingefügt wurde ... egal :)). Außerdem konnte ich keine Zeichenfolge wie '512132: 414618: SampleFileService-2-FTS' zu einem einzigen Wort kombinieren. Es wurde auch gespalten. Obwohl ich auf https://github.com/hpcugent/logstash-patterns/blob/master/files/grok-patterns verwiesen habe, weiß ich nicht, wo ich mich in der obigen Log-Nachricht bewerben sollte. Ich schätze deine Hilfe, nein Winkel du bist Narr ... würde sagen Retter. Vielen Dank. –

+0

Gern geschehen. Hat es funktioniert? Wenn es nicht zu einem erwarteten Ergebnis führt, zögern Sie nicht, Informationen zu Ihrer Frage hinzuzufügen – baudsp

Verwandte Themen