Skrypty do monitrowania macierzy programowych oraz dysków fizycznych

Mając na głowie od groma rzeczy można zapomnieć o standardowych przeglądach sprzętu. Warto zatem zautomatyzować chociaż część newralgicznych testów które wypada co jakiś czas zrobić.

Monitorowanie macierzy MD:

#!/bin/bash
if [ "$(/usr/bin/awk '/^md/ {printf "%s: ", $1}; /blocks/ {print $NF}'  /proc/mdstat;)" != "md0: [UU]" ]; then
echo -e "Jest jakiś problem z macierzą MD\n\nPoniżej treść komunikatu:\n\n$(/usr/bin/awk '/^md/ {printf "%s: ", $1}; /blocks/ {print $NF}'  /proc/mdstat;)" | mail -s "Problem z macierzą MD na $HOSTNAME" USER_SYSTEMOWY
else
sleep 1s
fi

Monitorowanie stanu dysku /dev/sda

#!/bin/bash
/usr/sbin/smartctl -a /dev/sda > /dev/null
if [ $? != 0 ]; then
echo -e "Jest jakiś problem z dyskiem /dev/sda \n\nPoniżej treść komunikatu:\n\n$(/usr/sbin/smartctl -a /dev/sda)" | mail -s "Problem z dyskiem na $HOSTNAME" USER_SYSTEMOWY
else
sleep 1s
fi

Monitorowanie stanu macierzy ZFS

#!/bin/bash
if [ "$(/usr/sbin/zpool status -x)" != "all pools are healthy" ]; then
echo -e "Jest jakiś problem z ZFS po wywołniu: zpool status -x\n\nPoniżej treść komunikatu:\n\n$(/usr/sbin/zpool status -x)" | mail -s "Problem z ZFS na $HOSTNAME" USER_SYSTEMOWY
else
sleep 1s
fi

Wywołania powyższych skryptów trzeba dodać do crontaba. Całość będzie działać poprawnie jeśli mamy prawidłowo skonfigurowane dostarczanie poczty e-mail na danej maszynie.

Poprzedni wpis Następny wpis