RSyslog und der komfortable Weg Logfiles zu lesen.

Seit geraumer Zeit hab ich eine Artikel aus dem CT Sonderheft vor mir hergeschoben. Nun hab ich es endlichgeschafft RSyslog Logs über MySQL durch LogAnalyzer analysieren zu lassen. Wer nur Bahnhof versteht, hier eine kleine Zusammenfassung: Worum geht es eigendlich? Ein laufendes LinuxSystem produziert ziehmlich zentral einen Haufen LogFIles. Diese geben meist den entschiedenden Anhaltspunkt wenn es darum geht rauszufinden, was passiert ist, warum etwas nicht funktioniert und so weiter. Das Problem bei der vielzahl an Logs ist, dass man sie schlecht durchsuchen kann. Wenn man einen Zeitstempel hat, kann man vieleicht noch gezielt Suchen, aber spätestens wenn es um die Frage geht: „wann wurde Datei XY gelöscht und von wem“ wirds ungemütlich, Liegt der fragliche Zeitpunkt noch in der Logrotation, wenn ja in welcher und überhaupt ist suchen über mehrere Dateien angesagt. Wie häufig wünschte ich mir bei sowas ein statement wie folgendes:

SELECT * FROM logevents WHERE message LIKE '%filename%"

Nunja genau das kann man mit RSyslog umsetzten. Sobald man das Packet „rsyslog-mysql“ installiert (es gibt noch eine PostGreSQL Backend) werden alle LogEintrage zusätzlich auch in einer (auf Wunsch automatisch angelegten) Datenbank abgelegt. Zusätzlich deshalb, weil es blöd ist, in die Datenbank zu schreiben, dass die Datenbank nicht da ist. Hat man einmal diese Komfortstatus erreicht, will man ihn gleich richtig Auskosten. Hier kommt LogAnalyzer ins Spiel.

LogAufkommen nach Severity
LogAufkommen nach Diensten

LogAnalyzer wiederum ist eine „kleine“ PHP-Anwendung die mehrere Quellen (darunter MySQL, PlaintextFile, etc) einlesen und auswerten kann. Diese können dann Aggregiert, komfortabel durchsucht und ausgewertet werden. Das macht einem das Leben im Zweifelsfall ziehmlcih einfach. Und gerade mit dem PlaintextFile kann man so ziehmlich jede Quelle in das System einbinden Link: http://loganalyzer.adiscon.com/downloads