Gargi
05.09.2009, 15:09
Um auf einem Zielrechner diverse Dienste über Nagios zu beobachten kann man natürlich eine ssh Verbindung aufbauen und ein Plugin remote ausführen. Wesentlich eleganter geht das über den NRPE Dienst des Nagios. Dazu wird auf dem Zielrechner ein kleiner Dienst installiert, der auf einen bestimmten TCP Port horcht. Wenn dann unser Nagios Server einen Request auf einen externen Dienst absetzt tut er dies über den bestimmten Port (TCP 5666 per default). Dann führt NRPE das Plugin auf dem Zielrechner aus und liefert den Wert wieder an den Nagios Server zurück.
Wir erklären das anhand einer Debianinstallation. Das Prinzip bleibt zwar zumeist bei jeder Distribution gleich, kann aber in der Konfiguration voneinander abweichen.
Dazu muss natürlich ein Nagios Server im Netz vorhanden sein. Dieser findet sich beispielsweise auf 192.168.0.2
Jetzt installieren wir auf dem Nagios Server zunächst das NRPE Plugin, das später ausgeführt werden muss:
apt-get install nagios-nrpe-plugin
Jetzt schreiten wir auf unserem Zielrechner zu Tat und installieren folgende beiden Pakete:
apt-get install nagios-plugins nagios-nrpe-server
Auch das geht fluchs von der Hand.
Jetzt ändern wir noch eine kleine Sache an der /etc/nagios/nrpe.cfg
Dort sucht die Zeile
allowed_hosts=127.0.0.1
und ändert diesen durch die IP Eures Nagios Servers ab:
allowed_hosts=192.168.0.2
Das stellt sicher, dass dann unser Nagios Server sich an den Zielrechner andocken darf. Sollte dies vergessen werden gibt es eine Meldung später im Nagios, dass der SSH Handshake nicht funktioniert.
Ihr findet bereits ein paar fertig definierte Dienste. Diese könnt Ihr dann als Beispiel für weiter eigen definierte Dienste verwenden:
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200
Speichert nun die Änderung und vergesst nicht, den NRPE neu zu starten:
/etc/init.d/nagios-nrpe-server restart
Auf dem Nagios Server können dann die Dienste konfiguriert werden. Bei den Diensten können normalerweise Parameter übergeben werden. Beispielsweise wenn Ihr eine IP oder einen Wert an das Plugin übermitteln wollt, wird das ja bei der Dienstdefinition durch ein ! gelöst. Ihr müsst Hier bei dem NRPE Plugin allerdings eine Kleinigkeit beachten. Es wird zwischen zwei Pluginvarianten unterschieden: NRPE mit und ohne Parameter / Argument. Wenn Ihr also einen Check ohne Argument (beispielsweise bei den check_users) verwenden wollt, dann definiert den Dienst wie folgt:
define service{
host_name MyServer
service_description Current Users
check_command check_nrpe_1arg!check_users
use generic-service
}
Der Aufruf also OHNE zusätzliche Parameter/Argumente werden somit mit dem Befehl check_nrpe_1arg gelöst. Das auszuführende Plugin wird dann mittels ! angehängt.
Sollte ein oder mehrere Parameter verwendet werden müssen, dann baut den Service wie folgt auf:
define service{
host_name MyServer
service_description Current Users
check_command check_nrpe!check_irgendwas!10 13 15
use generic-service
}
Also hier der check_nrpe , das Plugin mit ! abgetrennt, die Parameter auch mit einem ! und weitere mit einem Leerzeichen abgetrennt. Das nrpe Plugin muss somit nicht extra konfiguriert werden, sondern das erledigt bereits der apt-get.
Wenn Ihr nun den Dienst fertig konfiguriert habt startet den Nagios Server neu:
/etc/init.d/nagios3 reload
Viel Spaß!
cu
Gargi
Wir erklären das anhand einer Debianinstallation. Das Prinzip bleibt zwar zumeist bei jeder Distribution gleich, kann aber in der Konfiguration voneinander abweichen.
Dazu muss natürlich ein Nagios Server im Netz vorhanden sein. Dieser findet sich beispielsweise auf 192.168.0.2
Jetzt installieren wir auf dem Nagios Server zunächst das NRPE Plugin, das später ausgeführt werden muss:
apt-get install nagios-nrpe-plugin
Jetzt schreiten wir auf unserem Zielrechner zu Tat und installieren folgende beiden Pakete:
apt-get install nagios-plugins nagios-nrpe-server
Auch das geht fluchs von der Hand.
Jetzt ändern wir noch eine kleine Sache an der /etc/nagios/nrpe.cfg
Dort sucht die Zeile
allowed_hosts=127.0.0.1
und ändert diesen durch die IP Eures Nagios Servers ab:
allowed_hosts=192.168.0.2
Das stellt sicher, dass dann unser Nagios Server sich an den Zielrechner andocken darf. Sollte dies vergessen werden gibt es eine Meldung später im Nagios, dass der SSH Handshake nicht funktioniert.
Ihr findet bereits ein paar fertig definierte Dienste. Diese könnt Ihr dann als Beispiel für weiter eigen definierte Dienste verwenden:
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200
Speichert nun die Änderung und vergesst nicht, den NRPE neu zu starten:
/etc/init.d/nagios-nrpe-server restart
Auf dem Nagios Server können dann die Dienste konfiguriert werden. Bei den Diensten können normalerweise Parameter übergeben werden. Beispielsweise wenn Ihr eine IP oder einen Wert an das Plugin übermitteln wollt, wird das ja bei der Dienstdefinition durch ein ! gelöst. Ihr müsst Hier bei dem NRPE Plugin allerdings eine Kleinigkeit beachten. Es wird zwischen zwei Pluginvarianten unterschieden: NRPE mit und ohne Parameter / Argument. Wenn Ihr also einen Check ohne Argument (beispielsweise bei den check_users) verwenden wollt, dann definiert den Dienst wie folgt:
define service{
host_name MyServer
service_description Current Users
check_command check_nrpe_1arg!check_users
use generic-service
}
Der Aufruf also OHNE zusätzliche Parameter/Argumente werden somit mit dem Befehl check_nrpe_1arg gelöst. Das auszuführende Plugin wird dann mittels ! angehängt.
Sollte ein oder mehrere Parameter verwendet werden müssen, dann baut den Service wie folgt auf:
define service{
host_name MyServer
service_description Current Users
check_command check_nrpe!check_irgendwas!10 13 15
use generic-service
}
Also hier der check_nrpe , das Plugin mit ! abgetrennt, die Parameter auch mit einem ! und weitere mit einem Leerzeichen abgetrennt. Das nrpe Plugin muss somit nicht extra konfiguriert werden, sondern das erledigt bereits der apt-get.
Wenn Ihr nun den Dienst fertig konfiguriert habt startet den Nagios Server neu:
/etc/init.d/nagios3 reload
Viel Spaß!
cu
Gargi