Могу ли я остановить мониторинг хоста, если он выключен, и включить мониторинг, когда он включен?
Мне было интересно, есть ли вероятность, что Nagios может прекратить мониторинг хоста, если он выключен, и включить мониторинг, когда он включен?
Идея заключалась в том, чтобы использовать мой сервер Nagios, который будет отслеживать, выключен ли сервер CLIENT через скрипт, использующий API, и если сервер CLIENT выключен, он автоматически удалит свой мониторинг на нем, но если сервер включен, он будет переустановить мониторинг автоматически в шаблоны,
Причина в том, что мне это нужно, потому что существуют почасовые серверы CLIENT, которые мы также должны отслеживать, а когда почасовые серверы выключены, они рассылают нам предупреждения.
Я знаю, что есть лучшие способы для этого; Я приветствую каждое решение.
2 ответа
Вы не можете легко контролировать хост, если он будет включен / выключен в неопределенное время, но вы все равно можете контролировать сервисы на хосте.
Если вы не включите уведомления хоста, вы не будете получать уведомления, когда хост отключается / поднимается, а сервисные уведомления будут подавлены, когда хост выключен. Это означает, что вы будете получать сервисные уведомления, когда хост работает, но ничего, когда хост не работает. Веб-интерфейс будет выглядеть как беспорядок, но логика уведомлений будет работать.
В качестве альтернативы, вы можете использовать пассивные проверки (вместо активных проверок) и просто сделать так, чтобы хост отправлял результаты проверки службы по какому-то расписанию (например, через cron).
Чтобы действительно достичь того, о чем вы конкретно спрашивали (автоматическое удаление мониторинга хоста, когда он выключен), потребуется использование адаптивного мониторинга, что является довольно сложной темой.
Что мне нравится в Nagios, так это структура, предоставляющая достаточно инструментов для решения сложных задач мониторинга. Это скорее подход к решению этой проблемы, а не решение.
Как отмечает @kasperd выше, у Nagios нет механизма, позволяющего определить, включен ли хост в выключенном состоянии или нет. Если вы можете написать сценарий, чтобы определить, должен ли хост быть "включен", тогда этот подход будет работать.
Nagios поддерживает идею зависимостей хоста и / или сервиса. Идея заключается в том, что хост или служба не будут отключены, если одна из зависимостей не работает. Учитывая это, вы могли бы:
Определите клиентский хост "А", который нужно отслеживать
Определите "вкл / выкл" хост "B", который будет использоваться, чтобы определить, выключен ли хост
- Разработайте собственный скрипт проверки, который может определить, включен ли хост. Имейте это в виду, если хост выключен. нормально если вкл.
Сделать хост "A" зависимым от хоста "B"
С помощью этой конфигурации уведомление для хоста A будет обрабатываться только в том случае, если хост "B" работает нормально. См. Host Dependency в документации. В качестве альтернативы вы можете сделать это с помощью пользовательской проверки хоста, которая определяет как "должно быть включено", так и фактическое состояние и возвращает правильный статус.