LinuxForum.Fans
Тема

heartbeat настройка оповещений

Автор: safronowmax 7 сообщений 3617 просмотров
#141927

Подскажите пожалуйста, имеется кластер из 2 нод, настроен heartbeat, все нормально работает. Как можно сделать, чтобы в случае падения основной ноды и при переходе на резервную посылалось письмо по почте?

#141936
safronowmax написал:
Подскажите пожалуйста, имеется кластер из 2 нод, настроен heartbeat, все нормально работает. Как можно сделать, чтобы в случае падения основной ноды и при переходе на резервную посылалось письмо по почте?

Элементарно - в файлах haresourses на основую ноду (переключение с которой контролируем) вешаем простенький скрипт с содержимым нужного содержания:

text

#/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

Собственно - содержание расписать по вкусу. И положить этот скрипт ко всем остальным хертбитовым скриптам.
Для контроля второй ноды - всё аналогично.
Тогда будет тебе приходить по два письма. Первое об штатном отключении узла, второе - от резервного узла, что он это дело просёк и поднял нужные сервисы. Если узел вылетает напрочь, то придет только одно письмо, от резервного узла, что он это дело просёк и сервисы подхватил.

#141945

Cruiser78, спасибо Вам большое. В написании скриптов я полный чайник, Вы не могли бы объяснить в вашем скрипте строку: start) mail -s "ha $node service node-1 Up" to и

#142038
safronowmax написал:
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 на обоих узлах должен быть связан с первым узлом, второй - со вторым. Отличие этих файлов - только в тексте отсылаемого сообщения. А именно - чьи именно сервисы гасятся и поднимаются на конретном узле кластера.

#142107

Cruiser78, создаю скрипт /etc/ha.d/resource.d/mymail (содержание скрипта ваше)
В файл /etc/ha.d/haresources пишу строчку: local mymail, где local - имя ПК
Перезапускаю heartbeat, он мне выдает: Cannot locate resource script mymail

В чем проблема?

#142127

Извиняюсь, забыл сделать скрипт исполняемым

#142181

Cruiser78, спасибо Вам большое. Все работает

Войдите или зарегистрируйтесь, чтобы ответить.