Zabbix 3ware raidcontroller ueberwachen

tw_cli Downloaden und installieren

Laden Sie die Datei cli_linux_10.2.zip zum Beispiel hier herunter: http://mirrors.linuxant.fr/distfiles.gentoo.org/distfiles/CLI_linux-from_the_10.2.2.1_9.5.5.1_codesets.zip

und entpacken Sie den Download anschließend

unzip cli_linux_10.2.zip

sudo einrichten

Nur root darf tw_cli verwenden, deshalb einen Eintrag in der /etc/sudoers vornehmen, damit auch Zabbix tw_cli mit Rootrechten ausführen darf.

zabbix  ALL=(ALL) NOPASSWD:/opt/tw_cli/x86_64/tw_cli
zabbix  ALL=(ALL) NOPASSWD:/opt/tw_cli/x86/tw_cli

Wrapper Script verwenden

#!/bin/bash

#
# Checks the status of the hardware raid.
# Checkresults are returned as text or integer.
# The script expects one parameter: The check you want to perform .
# The second parameter, the adapter number, is optional. If adapter number is missing, 0 is set.
#

TWCLI_BIN=/opt/tw_cli/$(uname -m)/tw_cli
TWCLI="sudo $TWCLI_BIN"

# Check if Megacli is installed and executable
if [ -e $TWCLI_BIN ]
then
    true
else
    echo "tw_cli missing";
    exit 1
fi

# Set the adapternumber
if [ $2 ]
then
    ADAPTER=$2
else
    ADAPTER=0
fi

case $1 in
    bbu_ready)
        # Check if bbu is ready, returns 1 if ready
        $TWCLI /c${ADAPTER}/bbu show ready 2>&1|grep -cv "Yes"
    ;;
    bbu_status)
        # Check the status, returns the status as return by tw_cli
        $TWCLI /c${ADAPTER}/bbu show status 2>&1|head -n1|cut -d "=" -f2|sed s/"^ "/""/
    ;;
    mediaerrors)
        # Return the total number of disk which has reported an status other then OK
        $TWCLI /c${ADAPTER} show 2>&1|grep "^p[0-9].*u[0-9]"|grep -vc OK
    ;;
    raiderrors)
        # Return the number of arrays which do not have status "OK"
        $TWCLI /c${ADAPTER} show 2>&1|grep "^u[0-9]"|grep -cv -e "OK" -e "INITIALIZING" -e "VERIFYING"
    ;;
    alarm)
        # Return 0 if the adapter is reporting any alarm. Return 1 if an alarm is reported.
        # This check does not know what kind of alarm is reported.
        $TWCLI /c${ADAPTER} show 2>&1|grep "^[u,p,b,e]"|grep -vc [OK,VERIFYING]
        
    ;;
esac

Zabbix User-Parameter einrichten

UserParameter=3ware_raid[*],/opt/zabbix/scripts/check_3ware_raid.sh $1 $2

Zabbix Items einrichten

3ware items.png

Zabbix Trigger einrichten

3ware trigger.png

Auf Nummer sicher gehen

Prüfen Sie auch, ob Zabbix immer über den Zustand des Raids informiert ist und keine Fehler in der Konfiguration vorliegen.

Bei der Überwachung eines Raids ist Zabbix auf eine Reihe von Voraussetzung angewiesen. Die Tools des Herstellers, die Wrapperscripte und die UserParameter müssen korrekt eingerichtet sein. Wenn Sie einen Fehler machen, meldet der Zabbix-Client zwar "not supported" was aber nicht automatisch zu einem Alarm führt.

Wenn Sie auf Nummer sicher gehen wollen, dann sollten Sie auch die ordnungsgemäße Funktion der Überwachung überwachen. Dafür richten Sie einen Trigger ein, der Sie alarmiert, wenn das Item der Raidüberwachung keine Daten liefert. Mit dem Trigger

{3ware Raid:3ware_raid[alarm].nodata(4000)}=1

erhalten Sie zum Beispiel einen Alarm, wenn der Zabbix nicht alle 4000 Sekunden Daten über den Zustand des Raids bekommt.