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