Ubuntu Server HP Smartarray Tools installieren und Emailalarm erstellen

Leider können die Smartarray (SSACLI) keinen Emailalarm senden – jedoch kann man ein Script erstellen, welches stündlich prüft und im Problemfall eine Email sendet.

Dazu müsst ihr erst mal die ssacli herunterladen und installieren:

sudo  wget https://downloads.linux.hpe.com/SDR/repo/mcp/pool/non-free/ssa-6.15-11.0_amd64.deb && sudo dpkg -i ssa-6.15-11.0_amd64.deb

Danach benötigt ihr die Möglichkeit von der Konsole eine Mail zu versenden an externe Systeme, da ich keinen Postfix eingerichtet habe, verwende ich s-nail, dies benötigt ihr dann auch oder ändert euer Script ab:

sudo apt get s-nail

Dann müsst ihr ein Script erstellen, welches ihr später ausführt – erstellt es mit einem Editor (in meinem Beispiel z.B. sudo vi /scripts/controller_email.sh) und fügt den folgenden Inhalt ein:

#!/bin/bash
###
#If something went wrong with the HP smartarray disks this script will send an error email
###
if [ `ssacli controller slot=0 physicaldrive all show | grep 'Failed\|Rebuilding'| wc -l` -gt 0 ]
then
        echo "Es sind Fehler aufgetretten, eine oder mehrere  Platte(n) sind Fehlerhaft:"> smartarray.log
ssacli ctrl slot=0 pd all show status|grep 'Failed\|Rebuilding' >> smartarray.log
echo "****************************************************************" >> smartarray.log
echo "Weitere Details:" >> smartarray.log
ssacli ctrl slot=0 show status >> smartarray.log
ssacli ctrl slot=0 ld all show status >> smartarray.log
ssacli ctrl slot=0 pd all show status >> smartarray.log
ssacli ctrl slot=0 ld all show detail >> smartarray.log
ssacli ctrl slot=0 pd all show detail >> smartarray.log
cat smartarray.log | s-nail -S smtp="mailserver.tld:25" -v -s "[ERROR] Backupserver Controllerstatus" -r "absender@emailadresse.de" empfaenger@emailadresse.de
rm smartarray.log
else
echo "Everything Good"
fi

Nachdem ihr nun das Script gespeichert habt, müsst ihr das ausführbar machen:

sudo chmod +x controller_email.sh

Nun benötigt ihr noch einen Croneintrag, welcher ihr stündlich ausführt. Da dieses Script hohe Privilegien benötigt, muss dieses Eintrag bei Root erfolgen:

sudo crontab -e

Erstellt nun den Eintrag wie folgt und speichert diesen:

0 * * * * /scripts/controller_email.sh

Mit sudo crontab -l seht ihr, ob der Eintrag erstellt wurde – mit grep CRON | /var/log/messages kontrolliert ihr ob das Script gelaufen ist.

Das Script wird nur ausgeführt, wenn der Status der Platten Failed oder Rebuilding ist – wenn ihr das nun dennoch testen wollt, dann ändert das Script wie folgt ab – dann wird auch eine Meldung gesendet, wenn alle Platten Ok sind. Vergesst aber nicht danach wieder zurückzustellen.

#!/bin/bash
###
#If something went wrong with the HP smartarray disks this script will send an error email
###
if [ `ssacli controller slot=0 physicaldrive all show | grep 'OK'| wc -l` -gt 0 ]
then
        echo "Es sind Fehler aufgetretten, eine oder mehrere  Platte(n) sind Fehlerhaft:"> smartarray.log
ssacli ctrl slot=0 pd all show status|grep 'OK' >> smartarray.log
echo "****************************************************************" >> smartarray.log
echo "Weitere Details:" >> smartarray.log
ssacli ctrl slot=0 show status >> smartarray.log
ssacli ctrl slot=0 ld all show status >> smartarray.log
ssacli ctrl slot=0 pd all show status >> smartarray.log
ssacli ctrl slot=0 ld all show detail >> smartarray.log
ssacli ctrl slot=0 pd all show detail >> smartarray.log
cat smartarray.log | s-nail -S smtp="mailserver.tld:25" -v -s "[ERROR] Backupserver Controllerstatus" -r "absender@emailadresse.de" empfaenger@emailadresse.de
rm smartarray.log
else
echo "Everything Good"
fi

Tags: , , , , ,