Назад | Перейти на главную страницу

запрос keepalived

* Примечание: у меня проблемы с определением того, что должно быть в serverfault, а что - в суперпользователе, если какой-то любезный администратор решит, что это не в том месте, переместите его за меня - большое спасибо.

Я реализую базовую систему высокой доступности с keepalived. Я хочу получать уведомления об аварийном переключении только в случае аппаратного сбоя.

Однако у меня серверы периодически меняются ролями. У меня есть track_script, работающий в резервной копии, который будет изменять его возврат от 0 до 1 с интервалом (один раз в неделю, один раз в месяц, что угодно). При возврате 0 приоритет повышается над приоритетом мастера, при возврате 1 приоритет снова понижается. Таким образом они меняются местами на заданном интервале.

Вопрос: что я могу сделать, чтобы отличить переключение, вызванное моим скриптом, и переключение, вызванное отказом одного из серверов? Я, конечно, хочу получать уведомления, когда возникает реальная проблема, но не каждый раз, когда серверы меняются местами из-за сценария.

Я вижу, что версия 1.2.7 имеет поддержку snmp, и я, возможно, смогу использовать ее, чтобы получить некоторую информацию, которая могла бы сказать мне так или иначе, но, честно говоря, я никогда раньше не использовал snmp и не знаю, как получить информацию, которую я хочу с ним (мой Google foo подвел меня).

Вы можете сделать это, отключив уведомление по электронной почте в keepalived и создав notify_master и notify_fault сценарии, которые будут отправлять электронные письма, когда сервер будет повышен до уровня мастера, или если у него есть ошибка.

В track_script может коснуться файла, чтобы обновить время его изменения, когда он выполняет "запланированное" переключение и notify_master и notify_fault сценарии могут читать метку времени этого файла (с stat -c %Y file) и если эта метка времени старше, например, 60 секунд, значит это было запланированное переключение, и не отправляйте электронное письмо, иначе отправьте его.