У меня есть некоторая инфраструктура (серверы, коммутаторы и т. Д.), Контролируемая Zabbix-сервером, настроенная для оповещения в случае проблем; Все идет нормально. Но что, если на самом сервере Zabbix (или в любом из нижележащих инфра) возникнет проблема?
Одна из идей - опубликовать своего рода биение, которое может отслеживать внешняя система. Я подумываю использовать Zabbix API (возможно, используя py-zabbix), чтобы раскрыть это через http и отслеживать его с помощью чего-то вроде monitor.us .
Прежде чем я сделаю решительный шаг, я могу ' Не помогите узнать, существует ли что-то простое , чтобы покрыть это? Или это вообще хороший подход? Будет ли monit лучшим подходом по сравнению с настраиваемым скриптом Python? (не уверен, что это проходит тест на "простоту") ...
Więc oto co zrobiłem:
Wystąpiła nieoczekiwana czkawka: API Zabbix nadal odpowiada, nawet jeśli serwer Zabbix jest wyłączony i nie ma możliwości sprawdzenia statusu serwera - co było główną rzeczą, którą chciałem monitorować. Na szczęście istnieje łatka pozwalająca na takie zapytania o status serwera.
Oto kod do wysyłania zapytań do zestawu wyzwalaczy Zabbix, które uległy awarii (zaadaptowane z przykładu, który jest dostarczany z pyzabbix ). Jeśli potrzebujesz kodu do pełnego monitora, poproś w komentarzu, a opublikuję go na githubie.
def __query_unacked_triggers(self):
""" queries for currently tripped _triggers which haven't been acked """
return self._zapi.trigger.get(
only_true = 1,
filter = { 'value': 1 },
skipDependent = 1,
monitored = 1,
active = 1,
output = 'extend',
expandDescription = 1,
expandData = 'host',
withLastEventUnacknowledged = 1,
)
Внешнее сердцебиение - лучший способ .
Я не знаю ни одного такого инструмента, у меня есть свой собственный для системы мониторинга, которую я использую. Только убедитесь, что это сердечный ритм, а не отчет о неудаче. Например. вы всегда сообщаете, что все в порядке, и если система мониторинга не получает ваше сердцебиение в течение более длительного периода времени, она должна сообщить вам об этом.