Skip to content

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