DejaVu Posted September 2, 2014 · Report post Коллеги, добрый :) Проблема, насколько я понял, не новая, но решения я не нашел в поиске. Либо у меня где то ошибка, но я не могу найти и понять где. Либо проблема в исходниках. Зависимости триггеров срабатывают нормально, на дашборде сначала показывает недоступность всех устройств, через минуту-полторы, когда опросит все и проверит зависимости - убирает нижестоящие и показывает только вышестоящий коммутатор. Через 3 минуты - получаю СМС и почту о всех недоступных узлах а потом о всех восстановившихся, что анонит жутко, ибо есть узлы весьма крупные. Есть решение этой проблемы? Не верю, что все мучаются. Такое впечатление, что он при генерации уведомлений тупо не проверяет зависимости. Все что настроено - на картинке. Zabbix 2.2.4 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
start200 Posted March 23, 2015 (edited) · Report post Проблема, насколько я понял, не новая, но решения я не нашел в поиске. Либо у меня где то ошибка, но я не могу найти и понять где. Либо проблема в исходниках. Да, походу все мучаются ... уже читаю 5 форум с аналогичными проблемами без решения. Если кто сталкивался, подскажите в какую сторону копать .... Edited March 23, 2015 by start200 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
SergeiK Posted March 24, 2015 · Report post Дык, у вас же что получается? Что триггер сработал на каком-то коммутаторе, а информации по вышестоящему еще нет! Далее, у вас отрабатывает триггер по вышестоящему и зависимость убирает триггер по нижестоящему. Но! тот-то триггер уже отработал, значит сообщение ушло на отправку! Что делать? Делать надо, чтоб триггер нижестоящих всегда отрабатывал позже вышестоящего коммутатора. Например, если частота опроса доступности одинакова для вышестоящих и нижестоящих, что триггер на выщестоящий поставить на недоступность 2-х последних опросов, а триггер нижестоящих - при недоступности 3-х последних опрсов. Тогда вышестоящий триггер всегда будет раньше. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DejaVu Posted March 24, 2015 · Report post Что делать? Делать надо, чтоб триггер нижестоящих всегда отрабатывал позже вышестоящего коммутатора. Например, если частота опроса доступности одинакова для вышестоящих и нижестоящих, что триггер на выщестоящий поставить на недоступность 2-х последних опросов, а триггер нижестоящих - при недоступности 3-х последних опрсов. Тогда вышестоящий триггер всегда будет раньше. Это еще и шаблоны разные делать.. а если уровней три и более? Немасштабируемо как-то, костыльно. Тем более что как бы функционал есть, и даже отложенная отсылка уведомлений есть, но не работает. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DDR Posted March 24, 2015 · Report post Через 3 минуты - получаю СМС и почту о всех недоступных узлах а потом о всех восстановившихся, что анонит жутко, ибо есть узлы весьма крупные. Есть решение этой проблемы? Не верю, что все мучаются. Такое впечатление, что он при генерации уведомлений тупо не проверяет зависимости. Минус патча - ломает дальнейшую эскалацию события. Это баг. Решается патчем из ZBX-4344. Минус патча - ломается дальнейшая эскалация события. diff -Naur zabbix-2.2.6/src/zabbix_server/escalator/escalator.c zabbix-patch/src/zabbix_server/escalator/escalator.c --- zabbix-2.2.6/src/zabbix_server/escalator/escalator.c 2014-08-27 13:07:23.000000000 +0000 +++ zabbix-patch/src/zabbix_server/escalator/escalator.c 2014-10-09 02:46:38.644911081 +0000 @@ -1295,6 +1295,15 @@ } DBfree_result(result); + if(EVENT_OBJECT_TRIGGER == object && FAIL == DCconfig_check_trigger_dependencies(escalation->triggerid)) { + + /* dependencies in problem state? */ + + *error = zbx_dsprintf(*error, "An antecedent trigger of trigger %u is in a problem state\n%s", escalation->triggerid, error); + if(NULL != action) + action->actionid = 0; + } + zabbix_log(LOG_LEVEL_DEBUG, "End of %s() error:'%s'", __function_name, ZBX_NULL2STR(*error)); } Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
SergeiK Posted March 24, 2015 · Report post Что делать? Делать надо, чтоб триггер нижестоящих всегда отрабатывал позже вышестоящего коммутатора. Например, если частота опроса доступности одинакова для вышестоящих и нижестоящих, что триггер на выщестоящий поставить на недоступность 2-х последних опросов, а триггер нижестоящих - при недоступности 3-х последних опрсов. Тогда вышестоящий триггер всегда будет раньше. Это еще и шаблоны разные делать.. а если уровней три и более? Немасштабируемо как-то, костыльно. Тем более что как бы функционал есть, и даже отложенная отсылка уведомлений есть, но не работает. Ну-у, разные шаблоны не обязательно, думается мне, вполне можно решить вопрос макросом. Но сам не пробовал. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DejaVu Posted March 25, 2015 · Report post Это баг. Решается патчем из ZBX-4344. Минус патча - ломается дальнейшая эскалация события. О, спасбио. Попробую применять. Почитал каменты.. да.. Fundamental bug :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...