Hoch zu: Inhalt
Siehe auch:
State Stalking
Einführung
Nagios hat die Möglichkeit, zwischen „normalen“ und „flüchtigen“ Services zu unterscheiden. Die is_volatile-Option
in jeder Service-Definition erlaubt Ihnen festzulegen, ob ein bestimmter Service flüchtig ist oder nicht.
Für die meisten Leute wird die Mehrzahl der überwachten Services nicht-flüchtig (d.h. „normal“) sein. Trotzdem
können flüchtige Services sehr nützlich sein, wenn sie richtig eingesetzt werden…
Wofür sind sie nützlich?
Flüchtige Services sind nützlich zur Überwachung von…
Was ist so besonders an flüchtigen Services?
Flüchtige Services unterscheiden sich von „normalen“ Services in drei wichtigen Punkten. Jedes Mal wenn sie in
einem harten nicht-OK-Zustand sind und die Prüfung einen nicht-OK-Zustand ergibt (also keine
Statusänderung eintritt)…
Hard-Zustandswechsel erfolgte. In anderen Worten, sie passieren nur das erste Mal, wenn ein Service in einen nicht-OK-Zustand geht. Wenn weitere Prüfungen des Service den gleichen nicht-OK-Zustand ergeben, erfolgt kein harter Zustandswechsel und keines der genannten Ereignisse wird stattfinden.
Hinweis:
Wenn Sie nur an der Protokollierung interessiert sind, dann sehen Sie sich die Stalking-Option an.
Die Macht der Zwei
Wenn Sie die Möglichkeiten von flüchtigen Services und passiven Service-Prüfungen
kombinieren, können Sie einige sehr nützliche Dinge tun. Beispiele hierfür umfassen u.a. die Behandlung von
SNMP-Traps, Sicherheits-Alarme, usw.
Wie wäre es mit einem Beispiel… Nehmen wir an, Sie nutzen PortSentry,
um Portscans auf Ihrer Maschine zu erkennen und automatisch potenzielle Eindringlinge auszusperren. Wenn Sie wollen, dass
Nagios über Portscans erfährt, können Sie das Folgende tun…
Nagios Konfiguration:
PortSentry Konfiguration:
Editieren Sie die PortSentry-Konfigurationsdatei (portsentry.conf) und definieren Sie einen Befehl für die
KILL_RUN_CMD-Direktive wie folgt:
KILL_RUN_CMD="/usr/local/Nagios/libexec/eventhandlers/submit_check_result host_name 'Port Scans' 2 'Port scan from host $TARGET$ on port $PORT$. Host has been firewalled.'"
Stellen Sie sicher, host_name durch den Kurznamen des Hosts zu ersetzen, mit dem der Service verbunden ist.
Portscan-Script:
Erstellen Sie ein Shell-Script im /usr/local/nagios/libexec/eventhandlers-Verzeichnis namens submit_check_result.
Der Inhalt des Shell-Scripts sollte ähnlich dem Folgenden sein…
#!/bin/sh # Write a command to the Nagios command file to cause # it to process a service check result echocmd="/bin/echo" CommandFile="/usr/local/nagios/var/rw/nagios.cmd" # get the current date/time in seconds since UNIX epoch datetime=`date +%s` # create the command line to add to the command file cmdline="[$datetime] PROCESS_SERVICE_CHECK_RESULT;$1;$2;$3;$4" # append the command to the end of the command file `$echocmd $cmdline >> $CommandFile`
Was passiert, wenn PortSentry in der Zukunft einen Portscan auf der Maschine entdeckt?
Ziemlich hübsch, oder?