Beim Betrieb eines RAID-1 möchte man üblicherweise über einen Ausfall einer Platte möglichst sofort informiert werden, um sie schnellstmöglich tauschen lassen zu können.

Nach Installation des CIM-Providers von LSI für den LSI MegaRAID SAS 9260-4i wird auf der Hardware-Monitoring-Seite im vSphere-Client der Status des RAID angezeigt. Eine aktive Alarmierung ist aber nur in der kostenpflichtigen Version und bei Betrieb eines vCenter möglich – der vSphere-Client allein hat keine Alarmierungsfunktionalität.

Als Alternative installieren wir das “MegaCli” (ein Kommandozeilentool zum Management des RAID-Controllers) auf dem Host und richten ein Skript ein, das regelmäßig Hardwarestatus-Informationen zusammenstellt und per SCP an einen Server schickt, auf dem die Informationen weiter ausgewertet werden können.

In unserem Beispiel verwenden wir die Monitoring-Software “Zabbix”, für die wir ein Skript, User-Parameter und ein Template zur Verfügung stellen. Mit etwas Erfahrung sollten sich die Skripts aber auch für andere Monitoring-Systeme anpassen lassen.

Skriptinstallation auf dem ESXi-Host

MegaCli installieren

In diesem Abschnitt der Installationsanleitung ist beschrieben, wie wir den MegaCli installieren.

Verzeichnis für die Skripts einrichten

Da der Großteil des ESXi-Dateisystems beim Booten neu zusammengesetzt und vorige Inhalte damit gelöscht werden, brauchen wir einen “sicheren Ort” für unsere Skripts und Dateien. Wir entschließen uns, ein Unterverzeichnis des Datastores zu benutzen, hier /vmfs/volumes/datastore1/lsi. Dieses legen wir an.

[bash]mkdir /vmfs/volumes/datastore1/lsi[/bash]

SSH-Key vom Monitoring-Server übertragen

Die fertigen RAID-Informationen sollen per SCP auf den Monitoring-Server geschickt werden. Damit dies automatisiert und ohne Kennworteingabe geht, brauchen wir ein “Identity-File”, sprich den SSH Private Key des gewünschten Users auf dem Monitoring-Server.

In unserem Beispiel hat der Monitoring-Server den Hostnamen centaurus.tianet.de und der User heißt zabbix

Mit dem Kommando ssh-keygen erzeugen wir auf dem Monitoring-Server ein solches, falls der User noch keins hat. Die Passphrase lassen wir leer, da der ESXi-Host ohne Kennworteingabe den Key benutzen können muß.

[bash]zabbix@centaurus:~$ ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/home/zabbix/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/zabbix/.ssh/id_rsa.
Your public key has been saved in /home/zabbix/.ssh/id_rsa.pub.
The key fingerprint is:
4c:60:c9:cb:0f:e4:92:c4:2a:40:60:86:af:82:0f:7b zabbix@centaurus
The key’s randomart image is: […][/bash]

Die Datei id_rsa kopieren wir per SCP auf den ESXi-Host ins richtige Verzeichnis. Dazu brauchen wir das Root-Kennwort.

[bash]zabbix@centaurus:~$ scp .ssh/id_rsa root@esxi.tianet.de:/vmfs/volumes/datastore1/lsi/centaurus_zabbix_id
The authenticity of host ‘esxi.tianet.de (5.9.86.110)’ can’t be established.
RSA key fingerprint is 77:d8:25:f8:40:16:e6:6c:36:c1:ed:5f:8f:99:6e:b0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘esxi.tianet.de,5.9.86.110’ (RSA) to the list of known hosts.
Password:
id_rsa 100% 1675 1.6KB/s 00:00[/bash]

Initialisierungsskript für Reboots

Unser RAID-Daten-Übertragungs-Skript soll regelmäßig per Cron ausgeführt werden. Wie schon erwähnt, wird der großteil des ESXi-Rootdateisystems beim Booten neu zusammengesetzt. Dies betrifft u.A. die crontab und das Verzeichnis, in dem die SSH Known Hosts abgelegt werden. Daher erstellen wir auf dem ESXi-Host ein Skript, das beim Reboot ausgeführt wird, und das die entsprechenden Schritte durchführt.

Folgendes Skript legen wir ab unter /vmfs/volumes/datastore1/lsi/init-raid-stats.sh

[bash]#!/bin/sh
SCRIPT=$(readlink -f $0)
SCRIPT_PATH=$(dirname ${SCRIPT})

kill $(cat /var/run/crond.pid)
echo “0,30 * * * * ${SCRIPT_PATH}/send-raid-stats.sh” >> /var/spool/cron/crontabs/root
crond

mkdir /.ssh
chmod 700 /.ssh
cp ${SCRIPT_PATH}/known_hosts /.ssh[/bash]

Das Skript fügt einen Eintrag zur Crontab hinzu, der alle halbe Stunde das Hauptskript send-raid-stats.sh aufruft. Außerdem wird die known_hosts Datei an den richtigen Ort kopiert. Das Skript muß dann noch ausführbar gemacht werden:

[bash]chmod 755 /vmfs/volumes/datastore1/lsi/init-raid-stats.sh[/bash]

Um es beim Reboot ausführen zu lassen, fügen wir folgende Zeile am Ende der Datei /etc/rc.local an:

[bash]/vmfs/volumes/datastore1/lsi/init-raid-stats.sh[/bash]

Known Hosts einrichten

Wir legen uns eine Known Hosts Datei zurecht, die vom Bootskript kopiert wird:

[bash]~ # ssh zabbix@centaurus.tianet.de
The authenticity of host ‘centaurus.tianet.de (176.9.191.23)’ can’t be established.
RSA key fingerprint is e2:d0:02:8e:51:70:39:24:e0:23:88:ed:ba:4c:6f:e9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘centaurus.tianet.de,176.9.191.23’ (RSA) to the list of known hosts.
zabbix@centaurus.tianet.de’s password:

~ # cp /.ssh/known_hosts /vmfs/volumes/datastore1/lsi[/bash]

Wir brauchen nicht auf centaurus einzuloggen, sondern wollen nur erreichen, daß der Hostkey von centaurus in der known_hosts eingetragen wird.

RAID-Daten-Übertragungsskript

Schließlich das Skript, das die Hauptarbeit erledigt. Wir legen es ab unter /vmfs/volumes/datastore1/lsi/send-raid-stats.sh

[bash]
#!/bin/sh

SOURCENAME=esxitest # Unter diesem Namen erwartet das Zabbix-Skript für diesen ESXi-Host die Dateien
TARGETNAME=centaurus # Kurzname des Zabbix-Servers, für den Identify-File-Namen
TARGETHOST=centaurus.tianet.de # Voller Hostname des Zabbix-Servers
USER=zabbix # User auf dem Zabbix-Server, unter dem SCP einloggt

SCRIPT=$(readlink -f $0)
SCRIPT_PATH=$(dirname ${SCRIPT})

cd /opt/lsi/MegaCLI/

./MegaCli -adpallinfo -aall | egrep “Adapter #|Product Name :|FW Version :|Memory Correctable Errors :|Memory Uncorrectable Errors :” > /tmp/raidstatus_${SOURCENAME}_adapterinfo_0
./MegaCli -pdInfo -PhysDrv[252:0] -aAll | egrep “Enclosure Device ID:|Slot Number:|Inquiry Data:|Error Count:|state|failure|temperature|has flagged” > /tmp/raidstatus_${SOURCENAME}_pdinfo_252_0
./MegaCli -pdInfo -PhysDrv[252:1] -aAll | egrep “Enclosure Device ID:|Slot Number:|Inquiry Data:|Error Count:|state|failure|temperature|has flagged” > /tmp/raidstatus_${SOURCENAME}_pdinfo_252_1
./MegaCli -ldinfo -l0 -aall | egrep “Virtual Drive:|State” > /tmp/raidstatus_${SOURCENAME}_ldinfo_0

scp -i ${SCRIPT_PATH}/${TARGETNAME}_${USER}_id /tmp/raidstatus_${SOURCENAME}_* ${USER}@${TARGETHOST}:/tmp > /dev/null[/bash]

Die Belegung für die vier Variablen SOURCENAME, TARGETNAME, TARGETHOST und USER passen wir unseren Bedürfnissen an und machen das Skript ausführbar:

[bash]chmod 755 /vmfs/volumes/datastore1/lsi/send-raid-stats.sh[/bash]

Fertig! (mit diesem Teil)

Das wars, ab jetzt wird der ESXi-Host automatisch alle 30 Minuten Textdateien mit zusammengestellten RAID-Status-Informationen an unseren Zabbix-Server schicken.

Um ohne Reboot die Sache zu aktivieren, brauchen wir lediglich einmal das init-raid-stats.sh Skript manuell auszuführen. Zum Test können wir das send-raid-stats.sh Skript auch jederzeit unabhängig von Cron ausführen.

Einrichtung in Zabbix

Es gibt in Zabbix verschiedene Methoden, Daten ins Monitoring zu bekommen. Zum einen via SNMP, oder über den Zabbix Agent, der auf dem zu überwachenden Host läuft und aktiv oder passiv Daten liefert.

In unserem Fall hier ist leider beides nicht möglich, da die RAID-Informationen nicht über SNMP abrufbar sind, und auf dem ESXi-Host kein Zabbix-Agent installiert werden kann.

Daher gehen wir einen indirekten Weg und lassen mittels der im ersten Abschnitt beschriebenen Skripts auf dem ESXi-Host Textdateien mit RAID-Informationen per SCP auf den Zabbix-Monitoring-Host (im konkreten Fall eine virtuelle Maschine) kopieren. Das Skript send-raid.stats.sh schreibt folgende Dateien ins Temp-Verzeichnis des Monitoring-Hosts, mit wählbarem Infix (hier esxitest):

[bash]-rw-r–r– 1 zabbix zabbix 156 Oct 6 12:00 raidstatus_esxitest_adapterinfo_0
-rw-r–r– 1 zabbix zabbix 62 Oct 6 12:00 raidstatus_esxitest_ldinfo_0
-rw-r–r– 1 zabbix zabbix 238 Oct 6 12:00 raidstatus_esxitest_pdinfo_252_0
-rw-r–r– 1 zabbix zabbix 238 Oct 6 12:00 raidstatus_esxitest_pdinfo_252_1[/bash]

Diese Dateien haben, hier im Beispiel alle zusammengeklebt, folgenden Inhalt:

[bash]Adapter #0
Product Name : LSI MegaRAID SAS 9260-4i
FW Version : 2.130.353-1663
Memory Correctable Errors : 0
Memory Uncorrectable Errors : 0
Virtual Drive: 0 (Target Id: 0)
State : Optimal
Enclosure Device ID: 252
Slot Number: 0
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: Z1F0XS5MST3000DM001-1CH166 CC43
Drive has flagged a S.M.A.R.T alert : No
Enclosure Device ID: 252
Slot Number: 1
Media Error Count: 0
Other Error Count: 0
Firmware state: Online, Spun Up
Inquiry Data: Z1F0XRVMST3000DM001-1CH166 CC43
Drive has flagged a S.M.A.R.T alert : No[/bash]

Agent-Skript für die RAID-Informationen

Anstatt einen Agent auf dem ESXi-Host zu installieren, geben wir dem Agent auf dem Zabbix-Host nun die nötige Funktionalität, um die RAID-Infodateien zu parsen. Wir legen ein Skript im externalscripts-Verzeichnis der Zabbix-Installation an. Wurde Zabbix aus dem Quellcode kompiliert, liegt dieses unter/usr/local/share/zabbix/externalscripts.

Wir nennen das Skript getmegaraidinfo und geben ihm folgenden Inhalt:

#!/bin/bash

# $1 - File infix
# $2 - Mode: adpinfo (adapter info), pdinfo (physical drive info), ldinfo (logical drive info)
# $3 - Submode
# For adpinfo: prodname, fwversion, mcerrors, muerrors
# For pdinfo: mediaerrors, othererrors, state, serialnum, fwversion, smartalert
# For ldinfo: state
# For physical drive info:
# $4 - Enclosure device id
# $5 - Slot number
# For logical drive info:
# $4 - Device number

case $2 in
'adpinfo')
case $3 in
'prodname')
cat /tmp/raidstatus_$1_adapterinfo_0 | grep "Product Name" | cut -d ":" -f 2 | sed 's/^ *//g'
;;
'fwversion')
cat /tmp/raidstatus_$1_adapterinfo_0 | grep "FW Version" | cut -d ":" -f 2 | sed 's/^ *//g'
;;
'mcerrors')
cat /tmp/raidstatus_$1_adapterinfo_0 | grep "Memory Correctable Errors" | grep -oP "d+"
;;
'muerrors')
cat /tmp/raidstatus_$1_adapterinfo_0 | grep "Memory Uncorrectable Errors" | grep -oP "d+"
;;
esac
;;
'pdinfo')
case $3 in
'mediaerrors')
cat /tmp/raidstatus_$1_pdinfo_$4_$5 | grep "Media Error Count" | grep -oP "d+"
;;
'othererrors')
cat /tmp/raidstatus_$1_pdinfo_$4_$5 | grep "Other Error Count" | grep -oP "d+"
;;
'state')
S=`cat /tmp/raidstatus_$1_pdinfo_$4_$5 | grep "Firmware state" | grep -oP ": w+" | grep -oP "w+"`
case $S in
'Online')
echo "0"
;;
'Unconfigured Good')
echo "1"
;;
'Hot Spare')
echo "2"
;;
'Failed')
echo "3"
;;
'Rebuild')
echo "4"
;;
'Unconfigured Bad')
echo "5"
;;
'Missing')
echo "6"
;;
'Offline')
echo "7"
;;
'Hot Spare')
echo "2"
;;
'Hot Spare')
echo "2"
;;
esac
;;
'serialnum')
cat /tmp/raidstatus_$1_pdinfo_$4_$5 | grep "Inquiry Data" | cut -d':' -f2 | sed 's/ss*/ /g' | cut -d' ' -f2
;;
'fwversion')
cat /tmp/raidstatus_$1_pdinfo_$4_$5 | grep "Inquiry Data" | cut -d':' -f2 | sed 's/ss*/ /g' | cut -d' ' -f3
;;
'smartalert')
cat /tmp/raidstatus_$1_pdinfo_$4_$5 | grep "has flagged" | cut -d':' -f2 | sed 's/^ *//g'
;;
esac
;;
'ldinfo')
case $3 in
'state')
S=`cat /tmp/raidstatus_$1_ldinfo_$4 | grep "State" | cut -d':' -f2 | sed 's/^ *//g'`
case $S in
'Optimal')
echo "0"
;;
'Degraded')
echo "1"
;;
'Partial Degraded')
echo "2"
;;
'Failed')
echo "3"
;;
'Offline')
echo "4"
;;
'Hot Spare')
echo "2"
;;
'Hot Spare')
echo "2"
;;
esac
;;
esac
;;
esac

Das Skript ist noch stark verbesserungswürdig, verrichtet aber erstmal seinen Dienst. Man teilt ihm per Parameter mit, welche Infix-Dateigruppe man auslesen möchte, und welche Information daraus gewünscht wird. Diese Information wird dann einfach herausgeparst und ausgegeben.

In der Datei /usr/local/etc/zabbix.agentd.conf fügen wir dann folgende Zeilen unten an, die dem Agent die neue Funktionalität bekanntmachen:

[bash]
UserParameter=lsi.megaraid.adpinfo[*],/usr/local/share/zabbix/externalscripts/getmegaraidinfo $1 adpinfo $2
UserParameter=lsi.megaraid.pdinfo[*],/usr/local/share/zabbix/externalscripts/getmegaraidinfo $1 pdinfo $2 $3 $4
UserParameter=lsi.megaraid.ldinfo[*],/usr/local/share/zabbix/externalscripts/getmegaraidinfo $1 ldinfo $2 $3[/bash]

Damit haben wir dem Zabbix-Agent auf dem Zabbix-Host die Möglichkeit gegeben, die vom ESXi-Host aktiv herüberkopierten Infotext-Dateien zu parsen.

Zabbix-Konfiguration

In Zabbix selbst erstellen wir zunächst zwei “Value Mappings”, um die Statuswerte der Physical und Logical Drives intern als Zahlwert speichern, in Ausgabetexten aber als Klartext anzeigen zu können.

In Administration / General / Value Mapping fügen wir folgende Mappings hinzu:

Zabbix-valuemappings

Template und Host

Folgende Datei laden wir herunter und importieren das darin enthaltene Template unter Configuration / Templates / Import.

Anbei die zbx_export_templates.xml Datei. Danke an Frank dafür!

<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
    <version>2.0</version>
    <date>2013-08-05T12:02:09Z</date>
    <groups>
        <group>
            <name>Templates</name>
        </group>
    </groups>
    <templates>
        <template>
            <template>Tool LSI MegaRAID</template>
            <name>Tool LSI MegaRAID</name>
            <groups>
                <group>
                    <name>Templates</name>
                </group>
            </groups>
            <applications>
                <application>
                    <name>LSI MegaRAID</name>
                </application>
            </applications>
            <items>
                <item>
                    <name>Adapter Firmware Version</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.adpinfo[{$MEGARAID_ID},fwversion]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>4</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap/>
                </item>
                <item>
                    <name>Adapter information was updated</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.updated[{$MEGARAID_ID}]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>3</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap/>
                </item>
                <item>
                    <name>Adapter Memory Correctable Errors</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.adpinfo[{$MEGARAID_ID},mcerrors]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap/>
                </item>
                <item>
                    <name>Adapter Memory Uncorrectable Errors</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.adpinfo[{$MEGARAID_ID},muerrors]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap/>
                </item>
                <item>
                    <name>Adapter Product Name</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.adpinfo[{$MEGARAID_ID},prodname]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>4</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap/>
                </item>
                <item>
                    <name>Logical Drive 0: State</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.ldinfo[{$MEGARAID_ID},state,0]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap>
                        <name>LSI MegaRAID Logical Drive States</name>
                    </valuemap>
                </item>
                <item>
                    <name>Physical Drive 0: Firmware Version</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.pdinfo[{$MEGARAID_ID},fwversion,252,0]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>4</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap/>
                </item>
                <item>
                    <name>Physical Drive 0: Media Error Count</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.pdinfo[{$MEGARAID_ID},mediaerrors,252,0]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap/>
                </item>
                <item>
                    <name>Physical Drive 0: Other Error Count</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.pdinfo[{$MEGARAID_ID},othererrors,252,0]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap/>
                </item>
                <item>
                    <name>Physical Drive 0: Serial Number</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.pdinfo[{$MEGARAID_ID},serialnum,252,0]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>4</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap/>
                </item>
                <item>
                    <name>Physical Drive 0: SMART Alert</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.pdinfo[{$MEGARAID_ID},smartalert,252,0]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>3</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap/>
                </item>
                <item>
                    <name>Physical Drive 0: State</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.pdinfo[{$MEGARAID_ID},state,252,0]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap>
                        <name>LSI MegaRAID Physical Drive States</name>
                    </valuemap>
                </item>
                <item>
                    <name>Physical Drive 1: Firmware Version</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.pdinfo[{$MEGARAID_ID},fwversion,252,1]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>4</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap/>
                </item>
                <item>
                    <name>Physical Drive 1: Media Error Count</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.pdinfo[{$MEGARAID_ID},mediaerrors,252,1]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap/>
                </item>
                <item>
                    <name>Physical Drive 1: Other Error Count</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.pdinfo[{$MEGARAID_ID},othererrors,252,1]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap/>
                </item>
                <item>
                    <name>Physical Drive 1: Serial Number</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.pdinfo[{$MEGARAID_ID},serialnum,252,1]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>4</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap/>
                </item>
                <item>
                    <name>Physical Drive 1: SMART Alert</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.pdinfo[{$MEGARAID_ID},smartalert,252,1]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>3</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap/>
                </item>
                <item>
                    <name>Physical Drive 1: State</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>lsi.megaraid.pdinfo[{$MEGARAID_ID},state,252,1]</key>
                    <delay>2700</delay>
                    <history>7</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>LSI MegaRAID</name>
                        </application>
                    </applications>
                    <valuemap>
                        <name>LSI MegaRAID Physical Drive States</name>
                    </valuemap>
                </item>
            </items>
            <discovery_rules/>
            <macros/>
            <templates/>
            <screens/>
        </template>
    </templates>
    <triggers>
        <trigger>
            <expression>{Tool LSI MegaRAID:lsi.megaraid.updated[{$MEGARAID_ID}].avg(#2)}=0</expression>
            <name>LSI MegaRAID Adapater information for {$MEGARAID_ID} was not updated</name>
            <url/>
            <status>0</status>
            <priority>4</priority>
            <description/>
            <type>0</type>
            <dependencies/>
        </trigger>
        <trigger>
            <expression>{Tool LSI MegaRAID:lsi.megaraid.adpinfo[{$MEGARAID_ID},mcerrors].change(0)}&gt;0</expression>
            <name>LSI MegaRAID adapter correctable memory error count increased on {$MEGARAID_ID}</name>
            <url/>
            <status>0</status>
            <priority>2</priority>
            <description/>
            <type>0</type>
            <dependencies/>
        </trigger>
        <trigger>
            <expression>{Tool LSI MegaRAID:lsi.megaraid.adpinfo[{$MEGARAID_ID},muerrors].change(0)}&gt;0</expression>
            <name>LSI MegaRAID adapter uncorrectable memory error count increased on {$MEGARAID_ID}</name>
            <url/>
            <status>0</status>
            <priority>3</priority>
            <description/>
            <type>0</type>
            <dependencies/>
        </trigger>
        <trigger>
            <expression>{Tool LSI MegaRAID:lsi.megaraid.ldinfo[{$MEGARAID_ID},state,0].last(0)}#0</expression>
            <name>LSI MegaRAID Logical Drive on {$MEGARAID_ID} has a problem</name>
            <url/>
            <status>0</status>
            <priority>4</priority>
            <description/>
            <type>0</type>
            <dependencies/>
        </trigger>
        <trigger>
            <expression>{Tool LSI MegaRAID:lsi.megaraid.pdinfo[{$MEGARAID_ID},mediaerrors,252,0].change(0)}&gt;0</expression>
            <name>LSI MegaRAID physical drive 0 media error count increased on {$MEGARAID_ID}</name>
            <url/>
            <status>0</status>
            <priority>3</priority>
            <description/>
            <type>0</type>
            <dependencies/>
        </trigger>
        <trigger>
            <expression>{Tool LSI MegaRAID:lsi.megaraid.pdinfo[{$MEGARAID_ID},state,252,0].last(0)}#0</expression>
            <name>LSI MegaRAID Physical Drive 0 on {$MEGARAID_ID} has a problem</name>
            <url/>
            <status>0</status>
            <priority>4</priority>
            <description/>
            <type>0</type>
            <dependencies/>
        </trigger>
        <trigger>
            <expression>{Tool LSI MegaRAID:lsi.megaraid.pdinfo[{$MEGARAID_ID},smartalert,252,0].last(0)}=1</expression>
            <name>LSI MegaRAID Physical Drive 0 on {$MEGARAID_ID} has flagged a SMART alert</name>
            <url/>
            <status>0</status>
            <priority>4</priority>
            <description/>
            <type>0</type>
            <dependencies/>
        </trigger>
        <trigger>
            <expression>{Tool LSI MegaRAID:lsi.megaraid.pdinfo[{$MEGARAID_ID},othererrors,252,0].change(0)}&gt;0</expression>
            <name>LSI MegaRAID physical drive 0 other error count increased on {$MEGARAID_ID}</name>
            <url/>
            <status>0</status>
            <priority>2</priority>
            <description/>
            <type>0</type>
            <dependencies/>
        </trigger>
        <trigger>
            <expression>{Tool LSI MegaRAID:lsi.megaraid.pdinfo[{$MEGARAID_ID},mediaerrors,252,1].change(0)}&gt;0</expression>
            <name>LSI MegaRAID physical drive 1 media error count increased on {$MEGARAID_ID}</name>
            <url/>
            <status>0</status>
            <priority>3</priority>
            <description/>
            <type>0</type>
            <dependencies/>
        </trigger>
        <trigger>
            <expression>{Tool LSI MegaRAID:lsi.megaraid.pdinfo[{$MEGARAID_ID},state,252,1].last(0)}#0</expression>
            <name>LSI MegaRAID Physical Drive 1 on {$MEGARAID_ID} has a problem</name>
            <url/>
            <status>0</status>
            <priority>4</priority>
            <description/>
            <type>0</type>
            <dependencies/>
        </trigger>
        <trigger>
            <expression>{Tool LSI MegaRAID:lsi.megaraid.pdinfo[{$MEGARAID_ID},smartalert,252,1].last(0)}=1</expression>
            <name>LSI MegaRAID Physical Drive 1 on {$MEGARAID_ID} has flagged a SMART alert</name>
            <url/>
            <status>0</status>
            <priority>4</priority>
            <description/>
            <type>0</type>
            <dependencies/>
        </trigger>
        <trigger>
            <expression>{Tool LSI MegaRAID:lsi.megaraid.pdinfo[{$MEGARAID_ID},othererrors,252,1].change(0)}&gt;0</expression>
            <name>LSI MegaRAID physical drive 1 other error count increased on {$MEGARAID_ID}</name>
            <url/>
            <status>0</status>
            <priority>2</priority>
            <description/>
            <type>0</type>
            <dependencies/>
        </trigger>
    </triggers>
</zabbix_export>
zbx_export_templates.xml

Das Template enthält eine Application, Items für alle Informationen aus dem RAID-Text, und Trigger für die möglichen Probleme.

4 thoughts on “(Raid-)Monitoring in Zabbix LSI MegaRAID SAS 9260-4i”

Leave a Reply

Your email address will not be published. Required fields are marked *