Nagios check für 3ware Raid-Controller
Zuerst gehen wir in ein temporäres Verzeichnis wie z.B. ~/tmp und laden uns das 3DM2 CLI utilities herrunter.
root:~# cd ~/tmp
root:~/tmp# wget http://3ware.com/download/Escalade9690SA-Series/9.5.3/tw_cli-linux-x86-9.5.3.tgz
Dann entpacken wir nur das Binary tw_cli
und kopieren es nach /usr/local/nagios/libexec/
. Gleichzeitig setzen wir das Ausführen Bit auf das tw_cli
Binary.
root:~/tmp# tar -xzf tw_cli-linux-x86-9.5.3.tgz --wildcards --no-anchored 'tw_cli'
root:~/tmp# cp tw_cli /usr/local/nagios/libexec/ && chmod 755 /usr/local/nagios/libexec/tw_cli
Nun erstellen wir uns ein Nagios Check Skript, welches von Marcus T. Jaschen geschrieben wurde.
root:~/tmp# vi /usr/local/nagios/libexec/check_3ware_raid.sh
#!/bin/sh
#
# This script checks
#
# - RAID Status
# - Drive Status
#
# on a 3ware 7006-2 ATA RAID Controller.
#
# returns 1 if RAID error was detected, 2 if DISK error was detected
#
# Marcus T. Jaschen < rikman (@) gmail >
# 2006-02-03
# tw_cli binary location
TWCLI="sudo /usr/local/nagios/libexec/tw_cli"
# controller name
CONTROLLER=c0
# get complete status
STATUS_CONTROLLER=`$TWCLI /$CONTROLLER show`
# check for RAID status
STATUS_RAID=`echo "$STATUS_CONTROLLER" | grep "^u0" | awk '{ print $3 }'`
if [ "$STATUS_RAID" != "OK" ]; then
STATUS_RAID="RAID CRITICAL"
echo $STATUS_RAID
exit 1
fi
# check for disk status
STATUS_DISKS=`echo "$STATUS_CONTROLLER" | grep "^p[[:digit:]]" | awk '{ print $2; }'`
[[ -z `echo "$STATUS_DISKS" | grep -v "^OK$" | grep -v "^NOT-PRESENT$" | grep -v "^VERIFYING"` ]] || {
STATUS_RAID="DISK(S) CRITICAL"
echo $STATUS_RAID
exit 2
}
echo $STATUS_RAID
exit 0
Als nächsten Schriff setzen wir auch auf dem soeben erstellten Nagios Skript check_3ware_raid.sh
das Ausführen Bit.
root:~/tmp# chmod 755 /usr/local/nagios/libexec/check_3ware_raid.sh
In der Konfigurationsdatei /etc/nagios/nrpe.cfg
definieren wir noch den Befehl für das Skript check_3ware_raid.sh
.
root:~/tmp# vi /etc/nagios/nrpe.cfg
....
command[check_raid]=/usr/local/nagios/libexec/check_3ware_raid.sh
Damit der User nagios
alles mit sudo ohne Passwordeingabe ausführen kann, definieren wir in der /etc/sudoers
folgene Zeile.
root:~/tmp# visudo
....
nagios ALL=NOPASSWD: /usr/local/nagios/libexec/tw_cli
Als letzten Schritt starten wir noch den nagios-nrpe
Service neu.
root:~/tmp# service nrpe restart