====== Grok ====== Grok ist ein Tool, das Protokolle analysieren kann. Mit grok, können Sie unstrukturierte Log-und Event-Daten in strukturierte Daten umwandeln. ===== Installation ===== apt-get install bison ctags flex gperf libevent-dev libpcre3-dev libtokyocabinet-dev libevent-1.4-2 libtokyocabinet8 libpcre3 cd /opt wget http://semicomplete.googlecode.com/files/grok-1.20110630.1.tar.gz tar xfz grok-1.20110630.1.tar.gz rm grok-1.20110630.1.tar.gz mv grok-1.20110630.1 grok cd grok Ab Ubuntu 11.04 wurde das verlinken der libraries mid "ld" von "LDFLAGS" nach "LIBS" geändert. dafür muss folgendes angepasst werden: * Die "LDFLAGS" Anweisungen mit "LIBS" anpassen * Anpassungen verfolgen in der "Makefile" Datei * hier ein diff (evtl. muss manuell gesucht und angepasst werden): [[http://launchpadlibrarian.net/106238691/grok_1.20110708.1-1_1.20110708.1-1ubuntu1.diff.gz]] Nun kann endlich kompiliert werden make make install ===== Grok testen ===== Grok kann mit div. Log-Dateien und den angegebenen Patterns getestet werden. Man nimmt einfach eine Log-Datei und testet diese mit diesem Befehl: grok -f test.grok Die ''test.grok'' füllt man mit folgendem Inhalt: program { load-patterns: "/opt/grok/patterns/base" load-patterns: "/opt/grok/patterns/" exec "cat " match { pattern: "%{IP}" pattern: "%{PATTERN1}" pattern: "%{PATTERN2}" pattern: "%{PATTERN3}" pattern: "%{PATTERN4}" pattern: "%{PATTERN5}" reaction: "Found: %{IP}" reaction: "found: %{FELD1}, %{FELD2}, ${FELD13}" } } ===== Eigene Patterns ===== Im o.g. Beispiel hat man die Anweisung ''load-patterns:'' zwei mal ausgeführt und beim zweiten mal einen andere Pattern-Datei angegeben. Eine neue eigene Pattern-Datei muß wie folgt aussehen: %{:} Hier ein Beispiel NETSCREEN1 policy_id=%{INT:policy_id} Möchte man diese Patterns in ''logstash'' verwenden, muss man diese explizit mit der Directive ''patterns_dir =>'' angeben. Das sieht dann ungefähr so aus: if [type] == "" { grok { patterns_dir => [ "" ] match => { "message" => "...." } } } ===== Links ===== * Grok-Patterns (Github): [[https://github.com/elasticsearch/logstash/blob/master/patterns/grok-patterns]] * Grok-Debugger: [[https://grokdebug.herokuapp.com/]] * Grok-Debugger-Patterns: [[https://grokdebug.herokuapp.com/patterns]]