LINUX.ORG.RU
ФорумAdmin

Zabbix: создать trigger с оператором and

 


0

1

Привет!

Zabbix 3.2.6: Изначальная задача: «Если крыша открыта, и последнее изображение с камеры получено более, чем 10мин назад, должен загораться триггер».

Создал шаблон Template Roof, и итем roof_status Создал шаблон last_image_time, и итем last_image_delay Применил шаблоны к хостам, итемы прекрасно собираются.

И теперь хотел бы в шаблоне last_image_time создать выражение триггера

{Template last_image_time:get.last_image_delay[{$MACROS1},{$MACROS2}].last()}>600 and {Template Roof:get.roof_status[{$MACROS3},{$MACROS4}].last()}=0

Не дает создать такой триггер с ошибкой Trigger belongs to templates with different linkages.

Пробовал уже по-всякому. Не получается. Вроде бы простой логичный триггер. Часто встречаетя. Как правильно создать такой триггер? Буду благодарен за советы.

P.S.: триггер {Template last_image_time:get.last_image_delay[{$MACROS1},{$MACROS2}].last()}>600 - работает.



Последнее исправление: vladvv (всего исправлений: 4)

Тут человеку с похожей задачей предложили вариант решения. Жесть, конечно.

В шаблоне Template last_image_time создать macros, например, {$Corr_Roof_status} = 1. И с помощью ZabbixAPI менять значение этого макроса, в зависимости от состояния итема Roof_status.

Тогда макрос {$Curr_Roof_status} можно будет применять в выражении для триггера:

{Template last_image_time:get.last_image_delay[{$MACROS1},{$MACROS2}].last()}>600 and {$Curr_Roof_status}=0

Нелогично. У меня Zabbix-Server знает и last_image_delay, и Roof_status. И, по идее, может создать триггер, на основе этих item. Но как.

vladvv
() автор топика
Ответ на: комментарий от vladvv

Варианты:
- создавать триггер не в шаблоне, а сразу в узле (либо персональный шаблон, и в триггере указывать {host:get.что-то-там});
- организовать так, чтоб данные проверки были в одном шаблоне.

spirit ★★★★★
()
Ответ на: комментарий от spirit

- организовать так, чтоб данные проверки были в одном шаблоне.

Спасибо за дельный совет. Пошел по предложенному пути. Заработало!

в Template last_image собираются итемы - last_image_delay - roof_status

Тогда триггера с таким expression успешно создается:

{Template last_image:get.last_image_delay[{$MACROS1},{$MACROS2}].last()}>600 and {Template last_image:roof_status.get.status[{$MACROS3},{$MACROS4}].last()}=0

P.S. Правда, один и тот же итем roof_status теперь собирается в двух шаблонах «Template Roof» и «Template last_image». Вроде двойная работа. Будем надеяться, не скажется на производительности.

vladvv
() автор топика

Создать новый шаблон, прицепить к нему оба исходных шаблона с итемами. Создать триггер в новом шаблоне. Использовать результирующий шаблон, где необходимо.

AlexAT
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.