Посему я на коленке накидал скрипт который:
1. Опрашивает хосты через ping.
2. Оповещает по почте при падении хоста.
3. Оповещает по почте когда хост поднимается.
2. Записывает последний статус хоста, чтобы не отправлять повторные оповещения.
Записываем хосты в файл /home/scripts/monhosts в виде:
10.10.2.1 R-KRASNOGORSK 1
10.10.3.1 R-ZAGOPINSK 1
Где:
10.10.2.1 - IP для ping
R-KRASNOGORSK - имя хоста
1 - начальный статус
Создаем скрипт /home/scripts/mon.sh
#!/bin/bash
# Начальные настройки
FILE="/home/scripts/monhosts"
FILETMP="/home/scripts/monhosts.tmp"
MAILFROM="robot@example.com"
MAILTO="alarm@example.com"
SMTP="smtp.yandex.ru"
SMTPPASS="111"
cp $FILE $FILETMP
> $FILE
while read -r IP HOST STATUS
do
RESULT=`ping -c 5 $IP | grep ttl`
if [ "$RESULT" == "" ] && [ "$STATUS" == "1" ];
then
sendEmail -f $MAILFROM -t $MAILTO \
-u "$HOST упал" -m "Не доступен хост $HOST" \
-s $SMTP \
-o tls=yes -xu $MAILFROM -xp $SMTPPASS
STATUS=0
elif [ "$RESULT" != "" ] && [ "$STATUS" == "0" ];
then
sendEmail -f $MAILFROM -t $MAILTO \
-u "$HOST поднялся" -m "$HOST снова доступен" \
-s $SMTP \
-o tls=yes -xu $MAILFROM -xp $SMTPPASS
STATUS=1
fi
echo "$IP $HOST $STATUS" >> $FILE
done <"$FILETMP"
rm $FILETMP
exit
Делаем его исполняемым
chmod +x /home/scripts/mon.sh
Добавляем задание в Cron на запуск каждые 30 минут
*/30 * * * * root /bin/bash /home/scripts/mon.sh
Комментариев нет:
Отправить комментарий