Bents Blog

 

Ein IT Blog mit Themen aus dem Windows Server Umfeld.

Eventlog Monitoring via SMTP – zentral verwaltet und kostenfrei

Wer (wie ich) viele Serversysteme zu betreuen hat, freut sich über jede Automatisierung, die den Administrator in seiner täglichen Arbeit unterstützt. In meinem heutigen Beitrag möchte ich meine kleine Lösung für die Weiterleitung von (bestimmten) Meldungen aus dem Ereignisprotokoll zur zentralen Überwachung und Auswertung präsentieren. Grundsätzlich ist die Überwachung (Monitoring) von IT-Landschaften extrem wichtig, informiert sie doch frühzeitig über mögliche, entstehende Probleme, auf die so im Vorfeld reagiert werden kann. Nach meiner Erfahrung kommt es nur sehr selten zu einem Komplettausfall einer Komponente, der durch eine geeignete Überwachung nicht hätte verhindert werden können.

Typischerweise interessieren den Administrator alle Fehlermeldungen (eventuell auch Warnungen) im System- und Anwendungsprotokoll eines Servers. Abhängig von der Angriffsfläche des Systems könnten auch erfolglose Anmeldeversuche aus dem Sicherheitsprotokoll von Interesse sein. Nun gibt es verschiedenste Lösungen auf dem Markt, die genau diese Anforderungen mehr oder weniger gut erfüllen können.


Für kleinere Umgebungen ist die folgende Lösung möglicherweise durchaus interessant, da sie flexibel in Bezug auf ihre Konfiguration, schnell installiert und zudem noch kostenfrei ist.

Alternativen und Gründe für die Lösung

Seit Windows Server 2008 besteht die Möglichkeit, benutzerdefinierte Ansichten von Ereignissen zu erstellen, die sich per Protokoll, Quelle, Ereignisebene, Kategorien oder gar Schlüsselwörtern filtern lassen – im Standard existiert bereits die Ansicht „Administrative Ereignisse“. Auf eine solche Ansicht (oder aber auch auf einzelne Ereignisse) können wiederum Aktionen bzw. einfache Aufgaben (diese sind letztendlich Tasks) ausgelöst werden – neben der Anzeige oder Ausführung eines Programmes können auch E-Mail-Nachrichten versendet werden.

Allerdings lassen sich beim E-Mail-Versand nur statische Werte bzw. Texte versenden – ich hätte mir gewünscht, dass Microsoft hier die Nutzung dynamischer Variablen erlaubt um den Inhalt eines Ereignisses zu versenden. Außerdem kann mit dieser Aktion keine Authentifizierung am Mailserver umgesetzt werden, damit ist diese Lösung für mich unbrauchbar.

Eine zweite Variante – die es seit Windows Server 2008 gibt – ist die Weiterleitung von Ereignissen auf einen zentralen Server mit Hilfe des Windows Remote Management. (Details in diesem MSDN-Artikel) Allerdings werden hier auch nur alle relevanten Ereignisse in ein zentrales Ereignisprotokoll geschrieben, die Benachrichtigung des Administrators muss auf dem zentralen Server separat eingerichtet werden.

In Umgebungen, die nicht den Anforderungen meiner im Anschluss vorgestellten Lösung entsprechen, greife ich auf das Tool EventSentry Light von EventSentry zurück.

Meiner Meinung nach, einer der besten kommerziellen Werkzeuge für die Überwachung von Ereignisprotokollen, welches in der freien Version auf lediglich 3 konfigurierbare Filter beschränkt ist (was in den meisten Fällen aber ausreichend ist). Allerdings muss das Programm erst auf jedem Server installiert werden und ist mit ca. 23 MByte Größe nicht gerade ein „kleines“ Tool.

Anforderungen an die Lösung

Für die Nutzung meiner Lösung sind allerdings einige Voraussetzungen nötig, die aber beispielsweise schon in einer typischen Small Business Server Umgebung automatisch vorhanden sind:

  • Windows Server 2008 Domäne
  • vorhandener E-Mail-Server
  • Microsoft .NET Framework v2.0 auf den zu überwachenden Servern

Dabei können die zu überwachenden Server auch mit Windows Server 2003 als Betriebssystem arbeiten, lediglich das Microsoft .NET Framework muss installiert sein. Die Domäne (mit den Gruppenrichtlinien-Erweiterungen des Windows Server 2008) wird lediglich für die automatische, zentrale Verwaltung und Konfiguration benötigt.

Installation der Komponenten

Das eigentliche Tool, welches in der Lösung zum Einsatz kommt ist das Freeware-Programm evt-Watch von Jürgen Auer (www.sql-und-xml.de). Dieses kleine – auf Microsoft .NET basierende – Programm (44 Kbyte) lässt sich als Dienst installieren, kommt ohne grafische Benutzeroberfläche aus und wird über eine XML-Konfigurationsdatei gesteuert.

Die Optionen der XML-Datei sind dabei relativ simpel und trotzdem – den jeweiligen Anforderungen und Wünschen entsprechend – granular und vielfältig einstellbar. Zu Beginn müssen im Abschnitt <params> die Standard-Werte für den E-Mail-Versand eingestellt werden:

<add name=“std-Values“ std-SMTP=“Mailserver
std-Subject=“Ereignis auf Server [ %MACHINENAME% ] : [ %ENTRYTYPE% | %SOURCE% | %EVENTID% ] im Protokoll [ %EVENTLOG% ] “
std-Mail-from=“Absende-Adresse
std-Mail-to=“Empfänger-Adresse
std-User=““
std-Pwd=““ />

Falls der Mailserver dies erfordert, kann auch ein Benutzer mit Passwort zur Authentifizierung eingetragen werden.

Im weiteren Abschnitt <EventLog-List> können nun beliebig viele Filter gesetzt werden, auf die evt-Watch zukünftig reagieren und E-Mails versenden soll. In meinem Beispiel

<add EventLog=“Application“ source=“*“ EntryType=“‚Error'“ num-of-events=“5″ time-between-two-mails=“60″ />
<add EventLog=“System“ source=“*“ EntryType=“‚Error'“ num-of-events=“5″ time-between-two-mails=“60″ />

werden alle Fehler aus dem Anwendungs- und Systemereignisprotokoll für alle Quellen versendet. Dabei werden bei aufeinanderfolgenden, gleichen Fehlern nur jeder fünfte Eintrag und zeitgleich nur aller 1 Minute versendet – extrem sinnvoll, wenn ein Fehler im Sekundentakt (Beispiel Disk-Fehler) auftritt! Die XML-Datei selbst enthält eine sehr detaillierte Hilfe, die ich für weitere Konfigurationen nur empfehlen kann.

Um sowohl das Programm selbst, als auch zukünftig die XML-Konfigurationsdatei zentral zu verteilen, nutze ich die Gruppenrichtlinien-Erweiterungen von Windows Server 2008. Dazu habe ich die beiden Dateien evt-Watch.exe und evt-Watch.exe.xml im zentralen Netlogon-Ordner der Domäne abgelegt:

\\FQDN\Netlogon\Monitoring\

An dieser Stelle lässt sich zukünftig die Konfiguration des Monitoring (XML-Datei) für alle Server der Domäne vornehmen. Die Verteilung dieser Dateien erledigt eine Gruppenrichtlinie, die für alle Server der Domäne abgearbeitet wird (in meinem Fall nach %SystemRoot%):

Dabei ist zu beachten, dass das Programm (evt-Watch.exe) nur einmalig angewendet wird, da es sonst zu Fehlermeldungen bei der wiederholten Ausführung der Richtlinie kommt, wenn das Programm bereits als Dienst registriert wurde und ausgeführt wird:

Im Anschluss kann das Programm auf den Servern konfiguriert werden. Die folgenden Schritte sind durchaus über ein Skript steuerbar und damit automatisch umsetzbar.

Die Installation als Dienst erfolgt auf dem betreffenden Server über den Aufruf des folgenden .NET Tools:

%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe <Pfad>\evt-Watch.exe

Anschließend existiert der neue Dienst EventLog-Watch – www.sql-und-xml.de, der mit Hilfe der beiden Befehle

sc config evt_Watch_www_sql_und_xml_de start= auto
sc start evt_Watch_www_sql_und_xml_de

für den automatischen Start konfiguriert und gestartet wird. Anschließend versendet evt-Watch alle auftretenden Ereignisse via SMTP – so wie in der XML-Datei konfiguriert.

Der geniale Clou des Programmes ist allerdings, dass bei einer Änderung dieser XML-Konfigurationsdatei, der Dienst nicht neu gestartet werden muss und eventuelle Änderungen erkannt und umgesetzt werden. Dadurch lässt sich die XML-Datei zentral ändern (im Netlogon-Pfad), wird über die Gruppenrichtlinie automatisch verteilt und auf den Servern ersetzt und vom Dienst sofort übernommen. Eine feine runde Sache, wie ich finde.

Fazit

Für die Überwachung von Ereignissen gibt es jede Menge kommerzielle Software – die speziell in größeren Umgebungen sinnvollen Nutzen bieten. In kleineren Landschaften – typischerweise Domänen mit einer Hand voll Servern – kann auch bereits mit freier Software eine durchaus akzeptable Überwachung von Ereignissen umgesetzt werden. Wie bei allen meinen Beiträgen gilt: Bei Tipps, Vorschlägen sowie Fragen oder Kritiken hinterlasst bitte einen Kommentar.

Einen Blog am Leben zu erhalten kostet Zeit und Geld. Da ich auf meiner Seite weder Werbung einbinde, noch andersweitige Zuwendungen erhalte, freue ich mich über jede kleine Spende. Einfach und unkompliziert geht das über PayPalMe. Du unterstützt damit diesen Blog. Vielen Dank.

3 Kommentare für “Eventlog Monitoring via SMTP – zentral verwaltet und kostenfrei”

Einen Kommentar hinterlassen:

Antispam Bee hat Bent's Blog vor 410.433 Spam-Kommentaren bewahrt.