Wer seine Logs mit Hilfe von Logstash an einer zentralen Stelle sammelt wird früher oder später nicht drum herum kommen eigene Filter zu erstellen. Am beliebtesten ist dabei wohl der „Grok“ Filter. Mit ihm kann man entweder vordefinierte Pattern benutzen, oder selbst etwas Regex-Magic anwenden um seine Logs in das gewünschte Format zu bringen. Diese Filter zu debuggen ist allerdings sehr mühsam, da man jedes mal die betreffende Logstash Instanz neu starten muss damit Änderungen wirksam werden. Aus diesem Anlass will ich heute zwei Tools vorstellen die einem das Leben etwas leichter machen sollen.
grokdebug
Unter grokdebug.herokuapp.com findet man prinzipiell alles was man braucht. Zum einen lassen sich hier Grok-Filter ausprobieren indem man ein Beispiel seines Logeintrags benutzt und dann seinen Filter baut. Zum anderen kann man mit der „Discover“-Funktion auch automatisiert nach Pattern suchen lassen. Wer alle Pattern einfach mal durchstöbern möchte wird auf dieser Seite auch fündig.
ruby-grok
Für die Fans der CLI habe ich natürlich auch etwas. In seinem Git Repository stellt der Logstash Entwickler Jordan Sissel ein paar ruby Libraries bereit die man gut für seine Zwecke nutzen kann. Mit dem mitgelieferten Beispiel „pattern-discovery.rb“ lassen sich zum Beispiel auf einfache Weise bestehende Pattern finden die auf die eigenen Logs passen. Die Installation beschränkt sich hier auf einige wenige Kommandos:
# git clone https://github.com/jordansissel/ruby-grok.git # cd ruby-grok # rake # gem install jls-grok-0.10.11.gem # ruby examples/pattern-discovery.rb # Input: 192.168.1.1 http://www.netways.de 00:de:ad:be:ef:00 und etwas Text # Pattern: %{URIHOST} %{URI} %{MAC} und etwas Text
Mit diesen einfachen Mitteln kann man sich einige Neustarts und damit auch viel Zeit bei der Entwicklung neuer Filter sparen 🙂
0 Kommentare