2017-01-30 4 views
0

ich einen Kater Zugriffsprotokoll haben, wie untenlogstash Muster tomcat Zugriffsprotokolle grep

122.164.121.231 - - [23/Nov/2015:07:19:54 -0500] "GET /configs/config/[email protected] HTTP/1.1" 200 1135 

Und ich habe ein logstash Muster geschrieben, der gut arbeitet und nimmt die Daten

%{IP:clientip} \- \- \[%{NOTSPACE:date} \-%{INT}\] \"%{WORD:action} /%{WORD}/%{WORD}/%{NOTSPACE:login} %{WORD:protocol}/%{NUMBER:protocolNum}\" %{NUMBER:status} %{NUMBER} 

Aber dieses Muster funktioniert nur, wenn die API-uRL konstante dh

/configs/config/[email protected] 

ist wie es in dem Muster

In meinem Fall möchte ich die gesamte API unabhängig vom Muster erhalten, z. /configs/config/[email protected] oder

Wie könnte ich das tun?

Edit:

gefunden, dass die Verwendung% {GREEDYDATA: api} i bin in der Lage, das komplette API String

+0

Was meinen Sie mit '/configs/config/[email protected] oder? Du meinst die API URL könnte sich ändern? – Kulasangar

+0

Ja, ich meine, dass die API-URL sich ändern kann und nicht konstant ist. – praveen

Antwort

0

erhalten Sie nach mehreren Ebenen "/" suchen? Dann ja könnten Sie tun

%{IP:clientip} \- \- \[%{NOTSPACE:date} \-%{INT}\] \"%{WORD:action} /%{GREEDYDATA:api} %{WORD:protocol}/%{NUMBER:protocolNum}\" %{NUMBER:status} %{NUMBER}

Gab es etwas anderes?

Es ist ein ziemlich cooler Debugger für die Grok Filter-Plugin für logstash http://grokdebug.herokuapp.com/

Auch wir sind auf einem API-Debugging-Tool arbeiten, die hilfreich sein können, aber die vollständige Offenlegung, da ich der CEO bin. https://www.moesif.com/features