CRUX Linux Ports lassen sich bei installiertem NRPE leicht über Nagios überwachen
======Skript======
Das folgende Skript muss unter **/usr/local/nagios/libexec/check_ports** abgelegt werden:
#!/bin/sh
#################################
# check CRUX linux ports #
# ---------------------- #
# 2011 By Christian Stankowic #
# http://christian-stankowic.de #
# info@christian-stankowic.de #
#################################
#set warning level per param if detected
if [ -n "$1" ]; then
warning="$1"
else
warning=5
fi
#update ports and calculate updates
/usr/bin/ports -u > /dev/null
updates=$(/usr/bin/ports -d | sed '1d' | wc -l)
#Return code depending on ready updates
if [ "$updates" = 0 ]; then
echo "OK - $updates updates ready"
exit 0
elif [ "$updates" -le $warning ]; then
echo "WARNING - $updates updates ready"
exit 1
else
echo "CRITICAL - $updates updates ready"
exit 2
fi
Danach wird das Skript ausführbar gemacht:
# chmod +x /usr/local/nagios/libexec/check_ports
=====Parameter=====
Ohne Parameter überprüft das Skript ob Updates vorhanden sind und gibt bei **5 Updates** oder weniger eine Warnung aus - existieren mehr Updates erhält Nagios den Status **CRITICAL**
Dieser Schwellenwert kann dem Skript angepasst übergeben werden:
# ./check_ports 20
In diesem Beispiel verursachen bis zu 20 Updates noch eine Warnung - 21 Updates oder mehr übergeben einen kritischen Wert an Nagios.
======Einbindung in NRPE======
Damit das Skript auch innerhalb NRPE zur Verfügung steht, muss in der NRPE-Konfigurationsdatei (**/usr/local/nagios/etc/nrpe.cfg**) folgende Zeile hinzugefügt werden:
command[check_ports]=/usr/local/nagios/libexec/check_ports
In dieser Zeile kann natürlich noch ein alternative Schwellenwert angegeben werden.
Nach einem Neustart des NRPE-Daemons steht das Kommando zur Verfügung.
======Einbindung im Nagios======
Nagios-seitig wird das Skript wie jeder gewöhnlicher Check in Form eines Kommandos implementiert und einem Host zugewiesen:
define command{
command_name check_nrpe_ports
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_ports
}
#Updates
define service{
use local-service
host_name tvm-crux27
service_description Updates
check_command check_nrpe_ports
}