====== 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]]