Ad Widget

Collapse

Странно срабатывает триггер в обнаружении

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • neodiz
    Junior Member
    • May 2016
    • 2

    #1

    Странно срабатывает триггер в обнаружении

    Добрый день. Есть задача мониторить текстовое значение из файла. Мониторить нужно по принципу если не совпадает с одним из известных(перечисление) то выводить ошибку.Мониторинг делаю через обнаружение. Создаю Item и Создаю триггер. Item работает нормально выводит. Создаю триггер:
    {ETHOS PARAMS TEST:gpu.proxywallet[{#GPU}].count(#1,"<первое значение>",ne)}=1 or
    {ETHOS PARAMS TEST:gpu.proxywallet[{#GPU}].count(#1,"<второе значение>",ne)}=1 or
    {ETHOS PARAMS TEST:gpu.proxywallet[{#GPU}].count(#1,"<второе значение>",ne)}=1
    Триггер переходит в состояние проблема.В Item вижу первое значение
    Если триггер сделать вида:
    {ETHOS PARAMS TEST:gpu.proxywallet[{#GPU}].count(#1,"<первое значение>",ne)}=1
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    триггер переходит в состояние проблема
    логично. хотя бы одному из нескольких различных значений он не будет равен, условие or сработает всегда.

    Comment

    • neodiz
      Junior Member
      • May 2016
      • 2

      #3
      А можете пояснить поподробнее ? Я понимаю так:Если хотя бы одно из условий триггера положительное то и результат триггера должен быть положительный. Если все условия триггера отрицательные то и результат должен быть отрицательным.

      Comment

      • Kos
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • Aug 2015
        • 3404

        #4
        поясняю. у вас каждое отдельно взятое элементарное условие - сравнение "не равно":
        если не равно первому значению, или не равно второму значению, или не равно (...и т.д.)

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

        если вам нужна логика
        если не совпадает с одним из известных(перечисление) то выводить ошибку
        то, по всей видимости, ваши "не равно такому-то значению" надо объединять оператором and, а не or:
        если не равно первому значению, и не равно второму значению, и не равно (...и т.д.)

        тогда условие приобретает какой-то смысл: будет срабатывать, если не равно ни одному из перечисленных значений.

        Comment

        Working...