Zentraler Log-Server mit Splunk
Ab einer gewissen Anzahl von Systemen, die man als Systemadministrator betreut, ist es nicht mehr praktikabel die Logs auf allen Systemen einzeln zu überwachen. Ein zentraler Log-Server bietet sich hier gradezu an. Bei ungefähr 15 VServern, verteilt auf 2 physikalische Maschinen, wurde es nun auch bei mir endlich Zeit (Dadurch, dass ich meine VServer hinter einem NAT laufen lasse, sind es mittlerweile so viele geworden.)
Statt z.B. einen Syslog-Server mit syslog-ng zu realisieren, was sicherlich auch möglich gewesen wäre, habe ich mich für Splunk entschieden. Splunk ist ein kommerzielles Produkt, aber es gibt eine kostenlose, abgespeckte Version ( es können nur 500 MB Daten pro Tag angenommen werden).
Splunk ist im Prinzip eine Kombination aus Syslog-Server, Datenbank-Backend und Web-Frontend plus ein paar zusätzlichen Features. Es können nämlich noch viel mehr Datenquellen als nur Syslog Messages angenommen werden, z.B. können SNMP Traps angenommen werden, es können Dateien überwacht werden (vgl. tail) und es können sogar eigene Plugins geschrieben werden, so dass hier eigentlich keine Grenzen gesetzt sind.
Alle Log Nachrichten und Events, die Splunk annimmt, werden in einer Datenbank gespeichert und indiziert. Über das Web-Frontend kann man nun nicht nur einfach alle Daten anschauen, sondern auch (umfangreiche) Abfragen starten. Man kann z.B. mit einer Abfrage alle Log Nachrichten sehen, die im Zusammenhang mit einer E-Mail stehen, und zwar sowohl vom Spam Filter als auch vom MTA und vom Imap Server, die durchaus auf 3 unterschiedlichen Maschinen laufen könnten (bei mir auf 2 unterschiedlichen). Auch Abfragen, die nur einen bestimmten Zeitraum anzeigen sind natürlich möglich, so bekommt man die Korrelation der Log Messages geschickt gelöst.