Jump to content
Калькуляторы

Zabbix: Уведомления и зависимости триггеров

Коллеги, добрый :)

 

Проблема, насколько я понял, не новая, но решения я не нашел в поиске. Либо у меня где то ошибка, но я не могу найти и понять где. Либо проблема в исходниках.

 

Зависимости триггеров срабатывают нормально, на дашборде сначала показывает недоступность всех устройств, через минуту-полторы, когда опросит все и проверит зависимости - убирает нижестоящие и показывает только вышестоящий коммутатор.

 

Через 3 минуты - получаю СМС и почту о всех недоступных узлах а потом о всех восстановившихся, что анонит жутко, ибо есть узлы весьма крупные.

 

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

 

Все что настроено - на картинке.

 

Zabbix 2.2.4

 

354211a5bd4fe65803cecdb63a464fa1.gif

Share this post


Link to post
Share on other sites

Проблема, насколько я понял, не новая, но решения я не нашел в поиске. Либо у меня где то ошибка, но я не могу найти и понять где. Либо проблема в исходниках.

 

Да, походу все мучаются ... уже читаю 5 форум с аналогичными проблемами без решения.

 

Если кто сталкивался, подскажите в какую сторону копать ....

Edited by start200

Share this post


Link to post
Share on other sites

Дык, у вас же что получается? Что триггер сработал на каком-то коммутаторе, а информации по вышестоящему еще нет! Далее, у вас отрабатывает триггер по вышестоящему и зависимость убирает триггер по нижестоящему. Но! тот-то триггер уже отработал, значит сообщение ушло на отправку!

 

Что делать? Делать надо, чтоб триггер нижестоящих всегда отрабатывал позже вышестоящего коммутатора.

Например, если частота опроса доступности одинакова для вышестоящих и нижестоящих, что триггер на выщестоящий поставить на недоступность 2-х последних опросов, а триггер нижестоящих - при недоступности 3-х последних опрсов. Тогда вышестоящий триггер всегда будет раньше.

Share this post


Link to post
Share on other sites

Что делать? Делать надо, чтоб триггер нижестоящих всегда отрабатывал позже вышестоящего коммутатора.

Например, если частота опроса доступности одинакова для вышестоящих и нижестоящих, что триггер на выщестоящий поставить на недоступность 2-х последних опросов, а триггер нижестоящих - при недоступности 3-х последних опрсов. Тогда вышестоящий триггер всегда будет раньше.

 

Это еще и шаблоны разные делать.. а если уровней три и более? Немасштабируемо как-то, костыльно. Тем более что как бы функционал есть, и даже отложенная отсылка уведомлений есть, но не работает.

Share this post


Link to post
Share on other sites

Через 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));
}

Share this post


Link to post
Share on other sites

Что делать? Делать надо, чтоб триггер нижестоящих всегда отрабатывал позже вышестоящего коммутатора.

Например, если частота опроса доступности одинакова для вышестоящих и нижестоящих, что триггер на выщестоящий поставить на недоступность 2-х последних опросов, а триггер нижестоящих - при недоступности 3-х последних опрсов. Тогда вышестоящий триггер всегда будет раньше.

 

Это еще и шаблоны разные делать.. а если уровней три и более? Немасштабируемо как-то, костыльно. Тем более что как бы функционал есть, и даже отложенная отсылка уведомлений есть, но не работает.

Ну-у, разные шаблоны не обязательно, думается мне, вполне можно решить вопрос макросом.

Но сам не пробовал.

Share this post


Link to post
Share on other sites

Это баг. Решается патчем из ZBX-4344. Минус патча - ломается дальнейшая эскалация события.

 

О, спасбио. Попробую применять. Почитал каменты.. да.. Fundamental bug :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this