2016-05-23 18 views
1

Ich versuche, meine Anwendungsprotokolle mit Logstash-Filter zu analysieren. Die Protokolldateiinhalte sind wie untenLogstash Grok Filter: benutzerdefinierte Anwendungsprotokolle analysieren

17 May 2016 11:45:53,391 [tomcat-http--10] INFO com.visa.vrm.aop.aspects.LoggingAspect - RTaBzeTuarf |macBook|com.visa.vrm.admin.controller.OrgController|getOrgs|1006 

Ich versuche, ein Armaturenbrett (Liniendiagramm) mit logstash zu schaffen und die Aktivitäten auf der sie angezeigt werden sollen. Zum Beispiel kommt die Anfrage von einem Server mit einer Korrelations-ID und muss sehen, welche Klasse sie mit der entsprechenden Methode aufruft und wie lange sie benötigt hat, um sie auszuführen.

Die Nachricht ist wie:

correlation id | server-name | class name | method name | time taken 
log file e.g 
RTaBzeTuarf |macBook|com.visa.vrm.admin.controller.OrgController|getOrgs|1006 

ich nicht in der Lage bin grok Muster/Filter für obige Nachricht zu erstellen. Kann mir das jemand empfehlen?

Antwort

1

Versuchen Sie das mal:

(?<timestamp>%{MONTHDAY} %{MONTH} %{YEAR} %{HOUR}:%{MINUTE}:%{SECOND}) \[%{NOTSPACE:thread}\] %{LOGLEVEL:loglevel} (?<logger>[A-Za-z0-9$_.]+) - %{GREEDYDATA:correlationId}\|%{GREEDYDATA:servername}\|%{GREEDYDATA:className}\|%{GREEDYDATA:methodName}\|%{NUMBER:time}$