Подскажите пожалуйста, имеется кластер из 2 нод, настроен heartbeat, все нормально работает. Как можно сделать, чтобы в случае падения основной ноды и при переходе на резервную посылалось письмо по почте?
heartbeat настройка оповещений
Подскажите пожалуйста, имеется кластер из 2 нод, настроен heartbeat, все нормально работает. Как можно сделать, чтобы в случае падения основной ноды и при переходе на резервную посылалось письмо по почте?
Элементарно - в файлах haresourses на основую ноду (переключение с которой контролируем) вешаем простенький скрипт с содержимым нужного содержания:
#/bin/sh
node=`hostname`
case $1 in
start) mail -s "ha $node service node-1 Up" to
;;
stop) mail -s "ha $node service node-1 Down" to
;;
status)
exit 0
;;
*) echo "usage: $0 start|stop|status"
;;
esac
Собственно - содержание расписать по вкусу. И положить этот скрипт ко всем остальным хертбитовым скриптам.
Для контроля второй ноды - всё аналогично.
Тогда будет тебе приходить по два письма. Первое об штатном отключении узла, второе - от резервного узла, что он это дело просёк и поднял нужные сервисы. Если узел вылетает напрочь, то придет только одно письмо, от резервного узла, что он это дело просёк и сервисы подхватил.
Cruiser78, спасибо Вам большое. В написании скриптов я полный чайник, Вы не могли бы объяснить в вашем скрипте строку: start) mail -s "ha $node service node-1 Up" to и
Cruiser78, спасибо Вам большое. В написании скриптов я полный чайник, Вы не могли бы объяснить в вашем скрипте строку: start) mail -s "ha $node service node-1 Up" to и
Собственно heartbeat запускает свои скрипты с параметрами start и stop. Надеюсь, понятно когда. Поэтому их, параметры, и надо разобрать. Задача была поставлена следующая - послать почту при перебросе хеартбитом сервисов на резервную ноду. При этом на выключаемом узле будут выполнены (если смогут быть выполнены) все скрипты с параметром stop. На принимающем узле - с параметром start. Так что со словами start) и stop) в case - разобрались.
А что посылает почту, как не программа mail? А как послать почту с помощью программы mail? man mail. И там читаем, что ключом -s можно определить строчку темы (subject) письма, а последним параметром (у меня to) определить адресата, кому послать почту. Тему (текст в кавычках) я определил в своих традициях - вначале то, что порождает событие (здесь ha, то есть heartbeat, высокая доступность), затем имя узла, который посылает сообщение (было получено чуть выше командой hostname), дальше - в переводе на русский сервисы узла-1 подняты. То есть админ, определенный словом to получит при штатном перебросе сервисов два репорта, первый со смыслом "heartbeat узла 1 сервисы узла 1 погасил" и второй "heartbeat узла 2 сервисы узла 1 принял". Собственно, первого письма может и не быть. Тут - как повезет.
И еще - надо иметь по два оповещательных таких скрипта на каждом узле. Первый - в файлах haresourses на обоих узлах должен быть связан с первым узлом, второй - со вторым. Отличие этих файлов - только в тексте отсылаемого сообщения. А именно - чьи именно сервисы гасятся и поднимаются на конретном узле кластера.
Cruiser78, создаю скрипт /etc/ha.d/resource.d/mymail (содержание скрипта ваше)
В файл /etc/ha.d/haresources пишу строчку: local mymail, где local - имя ПК
Перезапускаю heartbeat, он мне выдает: Cannot locate resource script mymail
В чем проблема?
Извиняюсь, забыл сделать скрипт исполняемым
Cruiser78, спасибо Вам большое. Все работает