Damit Nagios von anderen Linuxrechnern informationen einholen kann, muss der NRPE-Dienst installier und konfiguriert werden.

Pakete installieren

Zunächst sollte man sich das Paket perl-net-SNMP installieren. Sollte es nicht installiert sein, kann es beim NRPE-Dienst zu Problemen kommen

zypper install perl-net-SNMP

Zusätzlich müssen noch die Pakete nagios-nrpe, nagios-nrpe-client, nagios-nrpe-doc, nagios-nrpe-server und nagios-plugins installiert werden. Diese sind nur im Server:Monitoring-Repository enthalten. Zum hinzufügen des Repos helfen folgende Zeilen:

zypper addrepo -f -n "Server Monitoring Repo" http://download.opensuse.org/repositories/server:/monitoring/openSUSE_11.4 Server:Monitoring zypper addrepo -f -n "PHP-Repo" http://download.opensuse.org/repositories/server:/php/openSUSE_11.4/ Server:PHP

Dann muss nur noch installiert werden:

zypper install nagios-nrpe nagios-nrpe-client nagios-nrpe-doc nagios-nrpe-server nagios-plugins

Hinweis:Meiner Meinung nach ist es etwas übertrieben, die Server:Monitoring-Repositories einzubinden, nur um NRPE zu installieren. Einfacher ist es, die Pakete an einem offenlichen Ort (Web- oder FTP-Server) zu legen und diese dann von dort per wget zu holen und zu installieren

xinetd konfigurieren

Damit man von außen auf den NRPE-Dienst zugreifen kann, nutzen wir den xinet-Daemon. Da aber nicht jeder auf die Daten des NRPE-Dienstes zugreifen kann, muss dieser noch auf den Nagios-Server eingeschrängt werden

In der Datei /etc/xinet.d/nagios-nrpe muss folgende Zeile noch eingefügt werden

only_from 127.0.0.1 <NagiosIP>

Nach einem Neustart

/etc/init.d/xinetd restart

kann nur noch der Nagios-Server oder localhost auf den Dient zugreifen.

Da der xinit-Daemon noch nicht automatisch startet, müssen wir ihn dazu bringen. Ein

chkconfig --level 35 xinetd

reicht aus, damit er im Runlevel 3 und 5 startet.

Zusätzlich müssen wir den Xinet-Dienst beibringen, damit er ab sofort den NRPE-Dienst zur verfügung stellt. Dies können wir mit einem

chkconfig nagios-nrpe xinetd

bewerkstelligen.

Jetzt noch einmal den xinet-Daemon neustarten und man kann NRPE testen.

Testen

xinetd

Zunächst sollte man testen, ob der NRPE-Dienst überhaupt läuft.

netstat -ltunp | grep ":5666"

Wenn jetzt eine Zeile wie folgende ausgegeben wird, ist dies schon mal sehr gut

tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 2676/xinetd

Sollte dies nicht der Fall sein, sollte man den Xinet-Daemon neu starten und auf die Fehlermeldung achten.

NRPE

Der nächste Test wird direkt über die NRPE-Check-Routinen gemacht. Hier sollte man folgende eingeben:

/usr/lib/nagios/plugins/check_nrpe -H localhost

Jetzt sollte die Versionsnummer des NRPE-Servers ausgegeben werden.

NRPE anpassen

Schwellenwerte anpassen

Da mir die im NRPE-Dienst vorgegebenen (User-/Prozess-) Schwellenwerte zu niedrig waren, wurden sie angepasst. In der Datei /etc/nagios/nrpe.cfg wurde die Zeile

command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10

durch folgende ersetzt:

command[check_users]=/usr/lib/nagios/plugins/check_users -w 10 -c 20

das gleiche wurde auch für die Zeile

command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200

gemacht. Als Resultat kam diese Zeile heraus

command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 200 -c 300

Root-Partition prüfen

In der Datei /etc/nagios/nrpe.cfg existiert schon eine Zeile, in der der Festplattenplatz angezeigt wird. Leider wird hierfür die Partition hda1 genutzt. Deshalb wird folgende Zeile hinzugefügt.

command[check_roothd]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda2

Im folgenden Skript wird hier die Root-Partition aus mount ausgelesen und in diese Zeile eingefügt.

Skript

Da diese ganzen Schritte zu aufwendig sind, um Sie per Hand einzutragen, wurde ein kleines Skript entwickelt. Zusätzliche wurde ein Test eingefügt, damit man die Kapazität der Root-Partition sehen kann.

#!/bin/bash ftpserver=<PaketQuelle> #Paket perl-Net-SNMP mit abhaengigkeiten per YaST installieren zypper -n install perl-Net-SNMP #Nagios-Pakete von FTP-Server herunterladen #zypper funktioniert hier nicht immer. Erst müssen die Server:Monitoring-Repos hinzugefügt werden, und dann klappt auch mit dem Nachbarn :-) #zypper installl nagios-nrpe nagios-nrpe-client nagios-nrpe-doc nagios-nrpe-server nagios-plugins wget -O /tmp/nagios-nrpe.rpm $ftpserver/nagios-nrpe-2.12-4.5.i586.rpm wget -O /tmp/nagios-nrpe-client.rpm $ftpserver/nagios-nrpe-client-2.12-4.5.i586.rpm wget -O /tmp/nagios-nrpe-doc.rpm $ftpserver/nagios-nrpe-doc-2.12-4.5.i586.rpm wget -O /tmp/nagios-nrpe-server.rpm $ftpserver/nagios-nrpe-server-2.12-4.5.i586.rpm wget -O /tmp/nagios-plugins.rpm $ftpserver/nagios-plugins-1.4.13-5.3.i586.rpm #Nagios-Pakete installieren rpm -iv /tmp/nagios-plugins.rpm rpm -iv /tmp/nagios-nrpe-server.rpm rpm -iv /tmp/nagios-nrpe-client.rpm rpm -iv /tmp/nagios-nrpe.rpm rm /tmp/nagios-*.rpm #xinetd anpassung sed -e 's/127.0.0.1/127.0.0.1 189.193.31.103/' -i /etc/xinetd.d/nagios-nrpe #xinetd bei systemstart starten lassen chkconfig --level 35 xinetd on #NRPE-Plugin konfigurieren, damit es ueber xinetd startet chkconfig nagios-nrpe xinetd #xinet starten /etc/init.d/xinetd restart #NRPE-einstellungen aendern sed -e 's/command\[check_users\]=\/usr\/lib\/nagios\/plugins\/check_users -w 5 -c 10/command\[check_users\]=\/usr\/lib\/nagios\/plugins\/check_users -w 10 -c 20/' -i /etc/nagios/nrpe.cfg sed -e 's/command\[check_total_procs\]=\/usr\/lib\/nagios\/plugins\/check_procs -w 150 -c 200/command\[check_total_procs\]=\/usr\/lib\/nagios\/plugins\/check_procs -w 200 -c 300/' -i /etc/nagios/nrpe.cfg #Commando check_roothd anhaengen roothd=`mount | grep "on / " | cut -d" " -f1` echo "command[check_roothd]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p $roothd" >> /etc/nagios/nrpe.cfg