Может ли Heartbeat делать две проверки для принятия решения об недоступности узла?
Здравствуйте.
Планировал писать bash скрипт для мониторинга доступности сервера и узнал, что для этого уже существует Heartbeat.
Но я хочу сделать более сложную проверку, чтобы принять решение о недоступности нужного сервера.
Пример:
srv1 - сервер, расположенный в ЦОД-1
srv2 - сервер, расположенный в ЦОД-2
Xочу чтобы при недоступности srv1 сервера, на srv2 запускался мой скрипт.
Варианты, когда srv2 будет считать srv1 недоступным:
1) srv1 отключён от сети интернет (srv2 видит интернет/google.com)
2) srv2 отключён от сети интернет (srv2 НЕ видит интернет/google.com)
Получается, что необходимо дополнительно проверять какой нибудь узел в интернете, чтобы точно понимать в каком случае сейчаc srv2.
Может ли Heartbeat такое сделать? Я просто ещё не вникал вообще в него, чтобы не тратить время.
Спасибо.
Если это делается для мониторинга - уже существует куча инструментов, выберите тот, который умеет что вам надо. Сейчас популярны Prometheus и Zabbix.
Если же проверка нужна для балансировки трафика (машина отпала - перестаем слать туда трафик) используйте умные envoy или haproxy.
Еще есть такой момент: допустим со стороны сервера А (на котором стоит мониторинг) сервер srv2 перестал быть доступен. Значит не надо слать на него клиентов и т.д. Но, если на самом сервере srv2 доступно что-то, то он может сам предпринять какие-то действия - это уже другой инструмент. Т.е. например вы мониторите с сервера A - srv2 недоступен, пошли на балансировщик и там отключили трафик до srv2. Сам srv2 гоняет на себе какой-то скрипт, который проверяет доступность интернета. Нет интернета - дёргает например линк на сетевом интерфейсе, или может там устройство для отправки смс есть - ну вот шлет смс тогда, и т.д. Т.е. это 2 независимых задачи, решаемые с разных сторон.
спасибо, да я в курсе заббикса, но он решает другие задачи, а тут конкретно нужно выполнить действия на самом сервере, в зависимости от состояния, что я описал в 1 сообщении.
Пришёл в выводу, что проще самому сделать такой скрипт или программу.