Dieses HOWTO entsteht gerade !
Ziel dieses Howtos ist es gezielt Einträge aus den Windows Eventlog per SNMP Trap an Nagios weiterzuleiten.
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.
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.
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.
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.
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
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:
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
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 |
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)