Ad Widget

Collapse

Множество триггеров на один айтем: как га&

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • paran0id
    Junior Member
    • Mar 2013
    • 3

    #1

    Множество триггеров на один айтем: как га&

    Здравствуйте!

    Стоит задача - замониторить большое количество объектов по множеству возможных ошибок.

    Первоначально эту задачу я решал с помощью обнаружения и множества прототипов айтемов (на каждую возможную ошибку - один айтем, принимающий значение 0 или 1, и один триггер).

    Количество возможных ошибок и объектов наблюдения растёт. Получается уже несколько тысяч айтемов в совокупности. Выгядит не очень правильно, и не удобно в использовании, поэтому я решил на каждый объект наблюдения заводить по одному айтему, принимающему в качестве значения код ошибки или 0, если ошибок нет. Разным значениям айтема соответствуют разные триггеры.

    Одновременно может возникать несколько ошибок, и если триггер срабатывает на last()=N, при изменении одного ненулевого значения айтема на другое ненулевое, первый сработавший триггер будет гаснуть, а второй срабатывать. Мне хотелось бы, чтобы уже сработавшие триггеры не гасли до того, как значение айтема вернётся в ноль. Если бы в Заббиксе были отдельные выражения для выключения триггеров - это можно было бы легко реализовать.

    Как поступить в данной ситуации?
    Last edited by paran0id; 09-06-2016, 15:06. Reason: UDP: как-то странно сработало ограни&#
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Originally posted by paran0id
    Одновременно может возникать несколько ошибок, и если триггер срабатывает на last()=N, при изменении одного ненулевого значения айтема на другое ненулевое, первый сработавший триггер будет гаснуть, а второй срабатывать. Мне хотелось бы, чтобы уже сработавшие триггеры не гасли до того, как значение айтема вернётся в ноль. [...]
    Как поступить в данной ситуации?
    Первое, что приходит в голову, - это почитать про гистерезис и задать разные условия для ситуации, когда триггер ещё не сработал, и когда он уже в состоянии "проблема". Например:
    Code:
    ({TRIGGER.VALUE}=0 & {server:item.last()}=N)  //включать триггер, если значение строго равно N
    or
    ({TRIGGER.VALUE}=1 & {server:item.last()}>0)  //если триггер включен, то удерживать его, пока возвращается любое значение больше нуля

    Comment

    Working...