Open Source im professionellen Einsatz
Linux-Magazin 05/2012
577

Schneller Logsurfer

Ein großer Nachteil von Logcheck und Logtail ist, dass der Admin sie über Cron regelmäßig aufrufen muss und die Programme dadurch nicht unmittelbar reagieren. Das lässt sich mit dem Einsatz von Logsurfer [3] ändern. Dieses auf dem Loganalyse-Tool Swatch basierende Programm hängt sich wie »tail« an ein Logfile und erfasst neue Einträge zur Laufzeit. Da Logsurfer in C geschrieben ist, ergibt sich auch ein Performancevorteil gegenüber dem in Bash realisierten Logcheck.

Während Logcheck einfach nur bekannte Logmeldungen mit einem regulären Ausdruck ausfiltert, verwendet Logsurfer leistungsfähige Regeln. Deren grundsätzlichen Aufbau demonstriert Listing 3. Dabei gibt »Match_regex« den regulären Ausdruck an, der auf die gesuchte Logzeile passt. Mit dem zweiten Feld »Not_match_regex« kann der Anwender Muster ausschließen. Findet »Stop_regex« einen Treffer, streicht Logsurfer die Regel von der aktuellen Liste der aktiven Regeln, das Feld »Not_stop_regex« beschreibt wieder die Ausschlusskriterien. Der Timeout-Eintrag definiert, wie lange die Regel aktiv sein soll. Wer an dieser Stelle eine 0 angibt, legt die Gültigkeit als unbegrenzt fest.

Listing 3

Logsurfer-Regeln

01 Match_regex Not_match_regex Stop_regex Not_stop_regex Timeout [continue] Action [...]

Die optionale Angabe »continue« teilt dem Programm Logsurfer mit, dass es die aktuelle Zeile auch dann parsen soll, wenn eine zuvor definierte Regel zutrifft. Tatsächlich hört Logsurfer standardmäßig nach dem ersten Treffer auf, eine Zeile zu verarbeiten. Das Minuszeichen »-« lässt sich zum Markieren unbenutzter Felder verwenden.

In Aktion treten

Tabelle 1 zeigt die möglichen Schlüsselwörter für die Aktion im letzten Feld. Jeder Regel kann der Admin eine eigene Aktion zuweisen, um auf verschiedene Ereignisse auch unterschiedlich zu reagieren. Neben dem Ausführen beliebiger Programme mit den »exec« - und »pipe« -Aktionen erstellt die »open« -Aktion kontextabhängige Regeln. Dabei speichert die Software sämtliche Zeilen, die auf einen regulären Ausdruck passen. Die »report« -Aktion gibt sie später als kompletten Block zusammenhängender Logeinträge aus.

Tabelle 1: Werte für action

Listing 4 enthält ein einfaches Beispiel für eine Regel, die beim Ereignis »Out of memory« eine Mail mit der entsprechenden Logzeile verschickt. Der erste reguläre Ausdruck trifft auf Zeilen mit der Zeichenkette »kernel: Out of memory« zu. In diesem Fall schickt die Regel eine Mail an Root. Der Betreff der Mail verwendet Variablen aus dem Suchmuster, um betroffene Prozess-ID (»$2« ) und weitere Informationen (»$3« ) hinzuzufügen. Daneben übergibt die Regel die komplette Logzeile an die Standardeingabe des Programms »mailx« .

Listing 4

Mail verschicken

01 'kernel: Out of memory: Kill process ([0-9]*) (.*)'- - - 0
02         pipe "/usr/bin/mailx -s \"Warning! Out of memory! Process $2 killed: $3\" root "

Ein komplexeres Beispiel demonstrieren die drei Regeln in Listing 5. Sie erkennen SSH-Sessions und zeigen alle Daten der Session, falls der Benutzer ein falsches Passwort angibt. Passiert innerhalb der SSH-Sitzung nichts Auffälliges (ist also das Passwort korrekt), verwerfen die Regeln die Logmeldungen.

Listing 5

Logsurfer-Kontext

01 '^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ sshd\[([[:digit:]]+)\]: .*' - - - 0 continue
02         open "$2" - 5000 86400 3600
03         report "/bin/cat" "$2"
04
05 '^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ sshd\[([[:digit:]]+)\]: Failed password .*' - - - 0
06         report "/bin/cat" "$2"
07
08 '^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ sshd\[([[:digit:]]+)\]: Connection closed.*' - - - 0
09         delete "$2"

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Bitparade

    Wer Logdateien überwachen möchte, könnte zu einem dicken Hund wie Nagios oder Icinga greifen. Doch auch leichtgewichtige Alternativen wittern Bedrohungen, lassen sich aber wesentlich flotter einrichten. Das Linux-Magazin geht mit fünf dieser kleinen Wachhunde auf den Trainingsparcours.

  • Kostenloses Lesefutter: Admin-Jobs delegieren, Cloud-Speicher, Kernel-Debugging

    Mit der Veröffentlichung des aktuellen Linux-Magazins 03/2012 wird das Magazin 05/2012 kostenlos zugänglich, denn auf Linux-Magazin Online gibt es alle Ausgaben gratis zu lesen, die älter als 10 Monate sind.

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.