Мониторинг zabbix сервера (самого себя) извне

У меня есть некоторая инфраструктура (серверы, коммутаторы и т. Д.), Контролируемая Zabbix-сервером, настроенная для оповещения в случае проблем; Все идет нормально. Но что, если на самом сервере Zabbix (или в любом из нижележащих инфра) возникнет проблема?

Одна из идей - опубликовать своего рода биение, которое может отслеживать внешняя система. Я подумываю использовать Zabbix API (возможно, используя py-zabbix), чтобы раскрыть это через http и отслеживать его с помощью чего-то вроде monitor.us .

Прежде чем я сделаю решительный шаг, я могу ' Не помогите узнать, существует ли что-то простое , чтобы покрыть это? Или это вообще хороший подход? Будет ли monit лучшим подходом по сравнению с настраиваемым скриптом Python? (не уверен, что это проходит тест на "простоту") ...

1
задан 6 December 2015 в 10:58
2 ответа

Więc oto co zrobiłem:

  1. Napisałem dość prostego Pythona skrypt, który używa pyzabbix do odpytywania Zabbix pod kątem zestawu "wyzwalaczy", które obecnie nie działają (patrz fragment poniżej). To działa okresowo w tle wątku (więc musi być bezpieczne dla wątków).
  2. Użyłem web.py , aby ujawnić to zewnętrznemu systemowi monitorowania.

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,
    )
1
ответ дан 3 December 2019 в 23:55

Внешнее сердцебиение - лучший способ .

Я не знаю ни одного такого инструмента, у меня есть свой собственный для системы мониторинга, которую я использую. Только убедитесь, что это сердечный ритм, а не отчет о неудаче. Например. вы всегда сообщаете, что все в порядке, и если система мониторинга не получает ваше сердцебиение в течение более длительного периода времени, она должна сообщить вам об этом.

0
ответ дан 3 December 2019 в 23:55

Теги

Похожие вопросы