Inhaltsverzeichnis

Windows Eventlog Einträge als SNMP Trap versenden

Dieses HOWTO entsteht gerade !

Ziel

Ziel dieses Howtos ist es gezielt Einträge aus den Windows Eventlog per SNMP Trap an Nagios weiterzuleiten.

Windows vorbereiten

Auf der/den Windows Maschinen ist es notwendig den SNMP Dienst zu intallieren.

Mit diesem Paket landen zwei recht unbekannte Programme auf der Platte.

Mit evntwin.exe und evntcmd.exe kann definiert werden welche Ereignisse aus den Windows Eventlog als SNMP Trap an Nagios gesendet werden sollen.

Einstellen der Ereignis-nach-Trap-Konvertierung

Die Konfiguration von SNMP und der Eventlogeinträge erfolgt über die Tools EVNTWIN.EXE (Konfiguration) und EVNTCMD.EXE (Konfigurations Import). Die beiden Tools sind unter Windows 2000, Windows Server 2003 und Windows XP mit installiertem SNMP Dienst vorhanden.

FIXME Unter XP und Windows 2003 Server ist evntcmd.exe nicht dabei.

Über EVNTWIN.EXE wird die Ereignis-nach-Trap-Konvertierung eingestellt. Hier wird also festgelegt, auf welche Ereigniseinträge (Event IDs) ein Trap geschickt wird.

evnt2trap01.jpg

Im ersten Schritt muss auf den Benutzerdefinierten Konfigurationstyp umgeschaltet werden, da sonst keine Event IDs ausgewählt werden können. Anschließend kann über den Button Bearbeiten aus den Ereigniskategorien mit den entsprechenden IDs ausgewählt werden. Über einen Doppelklick werden die IDs in die Auswahl mit aufgenommen. Hierbei ist zu beachten das nur installierte Anwendungen konfiguriert werden können.

evnt2trap02.jpg

Ein Export der Konfiguration erfolgt in eine events.cnf Datei. Es handelt sich hierbei um eine normale Textdatei. Leider ist die Endung .cnf der „Zielwahl“ zugeordnet und kann so nicht geöffnet werden. Also im Notepad (oder jedem anderen Editor) über Datei öffnen gehen… Der Inhalt wird im Abschnitt Import näher beschrieben.

Über den Button Einstellungen kann die Traplänge begrenzt werden und ob eine Drosselung der Traps erfolgen soll. In der Standardeinstellungen ist die Traplänge unbegrenzt und es werden mehr als 500 Traps in 5 Minuten unterdrückt.

evnt2trap03.jpg

Import der Einstellungen

Quelle: http://www.loriotpro.com/ServiceAndSupport/How_to/ForwardWINEvent_EN.php

Syntax

evntcmd [/s ComputerName] [/v VerbosityLevel] [/n] Dateiname

/s ComputerName

Der Computername für den die Konfigurationsdatei gelten soll. Wird kein Computername Angegeben wird automatisch der Lokale Computer verwendet.

/v VerbosityLevel

Über den Parameter /v wird das Ausgabelevel der Statusmeldungen gesteuert. Der Wert muss zwischen 0 und 10 liegen. 0 sind keine Meldungen, 10 alle Meldungen

/n

Parameter /n bedeutet das der SNMP Dienst nach erfolgter Konfiguration NICHT neu gestart werden soll.

Dateiname

Datei in der die Konfiguration steht. (events.cnf)

/?

Anzeige der Hilfe

evnt2trap04.jpg

Die Konfigurationsdatei

Die Konfigurationsdatei kann über evntwin.exe erfolgen (siehe oben) oder aber Manuell. In dem Konfigfile können die Events konfiguriert werden, aber auch die SNMP Einstellungen wie Trap-Empfänger oder die SNMP Community.

Syntax der events.cnf

#pragma ADD|DELETE|DELETE_TRAP_DEST|ADD_TRAP_DEST EventLogFile E-ventSource EventID [Count [Period]]

Beispiel einer Konfig die über evntwin.exe erzeugt wurde:

evnt2trap05.jpg

Jeder Eintrag muss mit „#pragma“ beginnen

ADD Hinzufügen einer Ereignis-zu-Trap-Konvertierung
DELETE Löschen einer Ereignis-zu-Trap-Konvertierung
DELETE_TRAP_DEST Löschen eines Trap Zieles
ADD_TRAP_DEST Hinzufügen eines Trap Zieles
CommunityName Einstellen der Community mit der die Traps gesendet werden sollen
HostID Trapziel, als Computername oder IP Adresse
EventLogFile Datei des Eventlogs
EventSource Anwendung welche den Trap erzeugt.
EventID Die Ereignisnummer

Beispiele:

Senden eines Traps wenn der Event Log service gestartet wird:

#pragma ADD System „Eventlog“ 2147489653

Senden eines Traps wenn der Event Log service innerhalb 3 Minuten 2x neu gestartet wird.

#pragma ADD System „Eventlog“ 2147489653 2 180

Deaktivieren das ein Trap gesendet wird wenn der Event Log Service neu gestartet wird:

#pragma DELETE System „Eventlog“ 2147489653

Senden von Traps an 192.168.100.100 mit der Community public:

#pragma ADD_TRAP_DEST public 192.168.100.100

Senden von Traps an Host1 mit der Community private:

#pragma ADD_TRAP_DEST private Host1

Stoppen von Traps an den lokalen Computer mit der Community private:

#pragma DELETE_TRAP_DEST private localhost

FIXME

SNMPTT vorbereiten

Auf Nagios Seite ist wieder der SNMPTT für die Verarbeitung der Traps zuständig.

Ein Howto zum SNMPTT ist hier zu finden.

Wie bereits beschrieben wird für jede EventID ein Trap erzeugt. Man kann also anhand der Trap OID nicht entscheiden welchen Status der Trap darstellt.

Jedoch wird innerhalb des Traps in Feld 4 der Status übergeben. SNMPTT kann nun über die Methode MATCH prüfen welchen Wert im Feld 4 des Traps gesetzt ist und so entscheiden ob es sich um einen WARNING oder CRITICAL Trap handelt.

Wert Bedeutung
1 CRITICAL
2 WARNING
3 OK
4 OK

Config für SNMPTT

Es werden alle Traps mit der OID .1.3.6.1.4.1.311.1.13.1.7.* verarbeitet. Dabei wird mit „MATCH $4:“ geprüft welchen Wert das Feld enthält und so entschieden welchen Status der Trap erhält.

EVENT EventLog .1.3.6.1.4.1.311.1.13.1.7.* "Win EventLog" CRITICAL
FORMAT $*
MATCH $4: (1)

EVENT EventLog .1.3.6.1.4.1.311.1.13.1.7.* "Win EventLog" WARNING
FORMAT $*
MATCH $4: (2)

EVENT EventLog .1.3.6.1.4.1.311.1.13.1.7.* "Win EventLog" OK
FORMAT $*
MATCH $4: (3)

EVENT EventLog .1.3.6.1.4.1.311.1.13.1.7.* "Win EventLog" OK
FORMAT $*
MATCH $4: (4)