Jun 162011
 

In vielen Servern, zum Beispiel der Firma Dell, werden auch Raid-Controller von LSI verbaut. Bei aktuellen Servern erkennt man anhand des Befehls „lspci“ folgende Bezeichnungen für die Controller, wobei es sich um den gleichen Typ handelt:

02:0e.0 RAID bus controller: Dell PowerEdge Expandable RAID controller 5
01:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 1078

Ältere Server haben teilweise einen älteren Controller im Einsatz.

02:0e.0 RAID bus controller: Dell PowerEdge Expandable RAID controller 4

Das Tool megactl

Um die genannten Raid-Controller abzufragen gibt es das Tool megactl. Für aktuelle Ubuntu- und Debian-Systeme gibt es dafür auch ein fertiges DEB-Paket, welche über eine Fremdquelle bezogen werden kann.

Hier findet man neben einer 64 Bit auch eine 32 Bit Version.

megactl_0.4.1+svn20090725.r6-1_amd64.deb
megactl_0.4.1+svn20090725.r6-1_i386.deb

Installation von megactl

Auf einem Ubuntu- oder Debian-Server wird das davor heruntergeladene Paket wie folgt installiert:

dpkg -i megactl_0.4.1+svn20090725.r6-1_i386.deb

Auf einem 64 Bit System wird davor das Paket libc6-i386 benötigt.

apt-get install libc6-i386

Status des Raid-Controllers abfragen

Den Status eines LSI MegaRAID-Controllers erhält man nach erfolgreicher Installation von megactl je nach eingebautem Typ mit den Befehlen:

megasasctl  (Dell PowerEdge Expandable RAID controller 5 oder MegaRAID SAS)

megactl (Dell PowerEdge Expandable RAID controller 4)

Bash-Skript zur automatischen Abfrage

Damit die Abfrage automatisch über Cron stattfindet oder um den Status des Controllers über Nagios prüfen zu lassen kann man ein entsprechendes Skript schreiben das zum Beispiel so aussehen kann:

#!/bin/bash
IFS="
"
# Status fuer Nagios bereitstellen
LOGFILE=/usr/lib/nagios/plugins/raid.txt

if [ -f $LOGFILE ];then
rm $LOGFILE
fi
touch $LOGFILE

# Abfrage des Status
CHECKRAID=$(megasasctl | grep 'DEGRADED|failure')

# Status ok
if (( $? != 0 ))
then
echo "0" | cat >> $LOGFILE
else
# Status Fehler - E-Mail senden
echo -e "$(megasasctl)" | mail admin@deinedom.tld -s"$(hostname) RAID Fehler"
# Status Rebuild ?
RAIDDETAILS=$(megasasctl | grep rebuild)
if (( $? == 0 ))
then
echo "1" | cat >> $LOGFILE
else
# Falls kein Rebuild - kritisch
echo "2" | cat >> $LOGFILE
fi
fi

Einbindung in den Nagios

Den dadurch bereitgestellten Status kann nun auch von Nagios abgefragt werden. Es werden folgende drei Werte bereitgestellt:

0 -> Status: ok
1 -> Status: warning
2 -> Status: critical

Dazu kann folgendes Nagios-Plugin eingesetzt werden.

#!/bin/bash

STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
host=$(hostname)

LOGFILE=/usr/lib/nagios/plugins/raid.txt
STATUS=$(cat $LOGFILE)

if [ $STATUS = "1" ]; then
echo "WARNING - $host - RAID rebuilding"
exit $STATE_WARNING;
fi
if [ $STATUS = "2" ]; then
echo "CRITICAL - $host - RAID critical"
exit $STATE_CRITICAL;
fi

if [ $STATUS = "Null" ]; then
echo CRITICAL - $host -  RAID unknown
exit $STATE_UNKNOWN;
fi

if [ $STATUS = "0" ]; then
echo OK - $host -  RAID OK
exit $STATE_OK;
fi

Auf der sicheren Seite

Viele Hoster setzen Raid-Controller ein, die wie man sehen kann, mit einfachen mitteln abgefragt werden können. Leider bieten die wenigsten ein entsprechendes Monitoring um zu warnen, falls eine Festplatte doch mal aus den Verbund ausfällt.

Die Redundanz eines Raid-Systems kann nur dann etwas nutzen, wenn auch rechtzeitig ein Problem erkannt wird bevor es zum Desaster kommt. (ch)

  2 Antworten zu “LSI Raid-Controller von Dell über Nagios überwachen”

  1. Ich glaube, dass kann man auch mit dem folgendem Programm und somit ohne cron zwischen Nagios und dem Raid bewerkstelligen …

    /usr/sbin/mpt-status

    + ein wenig sed & awk und schon hat man alle Werte und kann diese direkt an Nagios übergeben ;)

  2. Vielen Dank für den Tipp. Das Programm werde ich mir genauer anschauen und testen. :)

 Antworten

Du kannst diese HTML Tags und Attribute benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(Pflichtfeld)

(Pflichtfeld)

© 2017 LAMP solutions GmbH