Добрый день,
Как я понимаю существует проблема со сбросом триггеров, но не нашел на форуме конкретного примера, одни ссылки на темы с мониторингом эвентлогов и feature request #104. Но вот почему-то не получается, интересно увидеть как другие выходят из этой ситуации, по возможности с конкретным примером.
Использую триггеры вида:
({TRIGGER.VALUE}=0 & {xxxxx:snmptrap.fallback.str("alarm on")}=1) | ({TRIGGER.VALUE}=1 & {xxxxx:snmptrap.fallback.str(" alarm off")}#1)
Пробовал:
1) Сброс триггера вручную путем отправки трапа о восстановлении (это собственно и приходится делать).
2) Сброс триггера используя функцию nodata. Судя по форуму, это самый приемлемый вариант, но не получается... Триггер пересчитывается каждые 30 сек. и соответственно через каждые 30 сек. значение триггера постоянно меняется с "проблемы" на "ОК" и обратно.
({TRIGGER.VALUE}=0 & {xxxxx:snmptrap.fallback.str("alarm on")}=1) | ({TRIGGER.VALUE}=1 & {xxxxx:snmptrap.fallback.nodata(20)}#1)
3) Использование функции nodata может подходить только для сброса информационных трапов (например reboot и т.д.) Часто бывают ситуации, что устройство исправно шлет трапы об аварии и восстановлении, но возникают ситуации когда трап о восстановлении просто не отсылается, (например, устройство шлет трап о аварии и кто-то его ребутит), соответственно после этого и приходится сбрасывать триггер вручную.
Из-за таких случаев хотелось бы сделать что-нибудь типа такого:
({TRIGGER.VALUE}=0 & ({xxxxx:snmptrap.fallback.str("alarm on")}=1) | {xxxxx:OID.last(0)}=0)) | ({TRIGGER.VALUE}=1 & ({xxxxx:snmptrap.fallback.str("alarm off")}#1 | {xxxxx:.OID.last(0)}#1))
Т.е. триггер должен сработать при приеме аварийного трапа, либо при получении конкретного значения по SNMP, и вернуться в состояние "ОК" соответственно.
Но для этого в триггере требуется использовать два элемента данных, что насколько я понимаю невозможно... Хотя первая часть этого триггера работает:
({TRIGGER.VALUE}=0 & ({xxxxx:snmptrap.fallback.str("alarm on")}=1) | {xxxxx:OID.last(0)}=0)) | ({TRIGGER.VALUE}=1 & {xxxxx:snmptrap.fallback.str("alarm off")}#1)
P.S. Можно конечно отказаться от настройки триггеров на трапы, но это не подходит, т.к. требуется точно знать время событий с погрешностью всего несколько секунд.
Как я понимаю существует проблема со сбросом триггеров, но не нашел на форуме конкретного примера, одни ссылки на темы с мониторингом эвентлогов и feature request #104. Но вот почему-то не получается, интересно увидеть как другие выходят из этой ситуации, по возможности с конкретным примером.
Использую триггеры вида:
({TRIGGER.VALUE}=0 & {xxxxx:snmptrap.fallback.str("alarm on")}=1) | ({TRIGGER.VALUE}=1 & {xxxxx:snmptrap.fallback.str(" alarm off")}#1)
Пробовал:
1) Сброс триггера вручную путем отправки трапа о восстановлении (это собственно и приходится делать).
2) Сброс триггера используя функцию nodata. Судя по форуму, это самый приемлемый вариант, но не получается... Триггер пересчитывается каждые 30 сек. и соответственно через каждые 30 сек. значение триггера постоянно меняется с "проблемы" на "ОК" и обратно.
({TRIGGER.VALUE}=0 & {xxxxx:snmptrap.fallback.str("alarm on")}=1) | ({TRIGGER.VALUE}=1 & {xxxxx:snmptrap.fallback.nodata(20)}#1)
3) Использование функции nodata может подходить только для сброса информационных трапов (например reboot и т.д.) Часто бывают ситуации, что устройство исправно шлет трапы об аварии и восстановлении, но возникают ситуации когда трап о восстановлении просто не отсылается, (например, устройство шлет трап о аварии и кто-то его ребутит), соответственно после этого и приходится сбрасывать триггер вручную.
Из-за таких случаев хотелось бы сделать что-нибудь типа такого:
({TRIGGER.VALUE}=0 & ({xxxxx:snmptrap.fallback.str("alarm on")}=1) | {xxxxx:OID.last(0)}=0)) | ({TRIGGER.VALUE}=1 & ({xxxxx:snmptrap.fallback.str("alarm off")}#1 | {xxxxx:.OID.last(0)}#1))
Т.е. триггер должен сработать при приеме аварийного трапа, либо при получении конкретного значения по SNMP, и вернуться в состояние "ОК" соответственно.
Но для этого в триггере требуется использовать два элемента данных, что насколько я понимаю невозможно... Хотя первая часть этого триггера работает:
({TRIGGER.VALUE}=0 & ({xxxxx:snmptrap.fallback.str("alarm on")}=1) | {xxxxx:OID.last(0)}=0)) | ({TRIGGER.VALUE}=1 & {xxxxx:snmptrap.fallback.str("alarm off")}#1)
P.S. Можно конечно отказаться от настройки триггеров на трапы, но это не подходит, т.к. требуется точно знать время событий с погрешностью всего несколько секунд.
:
Comment