pattern-database für syslog-ng


Die pattern-db von syslog-ng ist ausgesprochen praktisch, um einzelne Messages gezielt aufteilen oder markieren zu können.

Solange eine Message in ein bestimmtes Muster passt, kann diese mit einem Tag versehen werden, dass dann in der syslog-ng.conf verwendet werden kann.

Als kleines Beispiel nehme ich

<patterns>
<pattern>Accepted publickey for @STRING:.sys.ssh.user@ from @IPv4:.sys.ssh.ip@ port @NUMBER:.sys.ssh.srcport@</pattern>
</patterns>
<tags>
<tag>ssh</tag>
<tag>user-login</tag>
<tag>security</tag>
</tags>


Auf die Syntax im einzelnen gehe ich hier nicht ein. Das kommt im neue Jahr im Januar.

Es wird jede Message markiert, die Accepted publickey for enthält, wenn dann ein User und eine IP folgen. Z.B.

Accepted publickey for clamavdb from 194.109.142.194 port 48575 ssh2


Im folgenden stehen dann in syslog-ng zwei Variablen zur Verfügung:

.sys.ssh.user = clamavdb
.sys.ssh.ip = 194.109.142.194


Zusätzlich bekommt die Message noch tags verpasst (ssh, user-login und security), die durch einen Filter abgefragt werden können:

filter f_sshd                   { tags("ssh");  };


Als destination für ssh-connects nehme ich

destination sshd                { file("/var/log/ssh/${.sys.ssh.user}"); };


Dadurch stehen unter /var/log/ssh die SSH-Connects für jeden User in einem eigenen Logfile. Die Destination kann man auch noch um ein zweites Log erweitern, um dann alle SSH-Connects (zusätzlich) in einem Log zu haben.

Und so werden die Logs dann geschrieben:

log {
source(src);
parser(pattern_db);
filter(f_sshd);
destination(sshd);
};


Kurzum: die pattern-db ist ein sehr mächtiges und flexibles Werkzeug, um Logs gezielt anlegen und filtern zu können. Dazu ist der Weg auch wesentlich schneller als der CSV-Parser oder mehrere filter hintereinander.

Ich stelle hier meine pattern-db als Download zur Verfügung. Die Dokumentation ist aber noch mehr als dürftig, die Files dürften aber einen guten Überblick darüber vermitteln, was damit so alles möglich ist. Für Fragen stehe ich gerne zur Verfügung.

pattern-db.tar.bz2

 

Kommentar erstellen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *