Перейти к содержимому
Калькуляторы

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

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

 

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

 

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

 

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

 

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

 

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

 

Zabbix 2.2.4

 

354211a5bd4fe65803cecdb63a464fa1.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

Изменено пользователем start200

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.