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
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 on
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.
- nrpe-install.sh
#!/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
Diskussion