Ad Widget

Collapse

Функция str и условие ЛИБО

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Pro-R
    Junior Member
    • Apr 2012
    • 22

    #1

    Функция str и условие ЛИБО

    Добрый день, столкнулся с нехваткой мозгов или знаний по zabbix: Прошу помощи знающих.
    Не могу создать триггер с функцией "str", чтобы в нем срабатывало условие ЛИБО.
    т.е. мы по oid дергаем строчку с железки, элемент данных настроен как текст, возвращается результат к примеру 6.20.B12 или 6.20.B17.
    Когда на всем железе одинаковая версия прошивки - проблем нет, работает. Указываем эталон - всё что не совпадает проблема. Но в моём случае имеется 2 рабочие прошивки, и переводить всё на одну версию нет смысла (пока что).
    Создал вот такой триггер: {Template_Dlink_DES-3526:FirmVers.str(6.20.B12,3600)}#1 | {Template_Dlink_DES-3526:FirmVers.str(6.20.B17,3600)}#1 - не помогло, сработало много аварий.
    Может быть триггер должен быть вот таким?: {Template_Dlink_DES-3526:FirmVers.str(6.20.B12|6.20.B17,3600)}#1
    Как можно задать в поиск два значения? Найти вот это или вот это - если ничего не нашлось, зажечь аварию. МОжет я не правильную функцию выбрал? Прошу помощи.
  • ableev
    Senior Member
    Zabbix Certified Specialist
    • Oct 2012
    • 276

    #2
    Почему вы используете "ЛИБО"? Вам нужно использовать "И".
    То есть, у вас две рабочие прошивки – значит версий у вас две – 6.20.B12 И 6.20.B17.
    Почему или?

    Code:
    {Template_Dlink_DES-3526:FirmVers.str(6.20.B12,3600)}=0 & {Template_Dlink_DES-3526:FirmVers.str(6.20.B17,3600)}=0
    Вот так.

    Comment

    • Pro-R
      Junior Member
      • Apr 2012
      • 22

      #3
      Originally posted by ableev
      Почему вы используете "ЛИБО"? Вам нужно использовать "И".
      То есть, у вас две рабочие прошивки – значит версий у вас две – 6.20.B12 И 6.20.B17.
      Почему или?

      Code:
      {Template_Dlink_DES-3526:FirmVers.str(6.20.B12,3600)}=0 & {Template_Dlink_DES-3526:FirmVers.str(6.20.B17,3600)}=0
      Вот так.
      Выражение тоже является не рабочим.
      Всё равно получается авария, к примеру ситуация, у нас два коммутатора. на одном коммутаторе прошивка 6.20.B12, на втором 6.20.B17
      Первый коммутатор зажжет аварию на второй проверке после &
      Code:
      {Template_Dlink_DES-3526:FirmVers.str(6.20.B17,3600)}=0
      Второй коммутатор зажжет аварию на первой проверке до &
      Code:
      {Template_Dlink_DES-3526:FirmVers.str(6.20.B12,3600)}=0
      Мне кажется может помочь либо:
      - перешить всё на одну прошивку и мониторить аварии отклонившиеся от этого эталона.
      - добавить функции и/или в одно условие:
      Code:
      {Template_Dlink_DES-3526:FirmVers.str(6.20.B12 "|&" 6.20.B17,3600)}#1
      (на сколько в курсе, такого функционала не предусмотрено, если не прав прошу поправить меня).
      - многоступенчатая проверка, шаг1-авария => дополнительная проверка шаг2 (считаю чем проще тем лучше. поэтому опять возвращаюсь к мысли единой версии прошивки).

      Comment

      • ableev
        Senior Member
        Zabbix Certified Specialist
        • Oct 2012
        • 276

        #4
        Originally posted by pro-r
        Выражение тоже является не рабочим.
        Всё равно получается авария, к примеру ситуация, у нас два коммутатора. на одном коммутаторе прошивка 6.20.b12, на втором 6.20.b17
        Первый коммутатор зажжет аварию на второй проверке после &
        Code:
        {template_dlink_des-3526:firmvers.str(6.20.b17,3600)}=0
        Второй коммутатор зажжет аварию на первой проверке до &
        Code:
        {template_dlink_des-3526:firmvers.str(6.20.b12,3600)}=0
        Какой "одной"? Какой "второй"? Это ОДНА проверка.
        Вам знакомы основы логики? Здесь нет никаких особенностей заббикса.

        Вы пробовали сделать так, как я написал?
        ––
        Логический элемент "&" – "И".

        Выражение в человеческом виде: "версия не равна 6.20.b17" И "версия не равна 6.20.b12" = ПРОБЛЕМА.
        ––
        На одном коммутаторе прошивка 6.20.b12.

        "Версия не равна 6.20.b17" И "Версия не равна 6.20.b12" – НЕТ = ОК. Потому что не выполняются оба условия.

        ––
        На другом коммутаторе прошика 6.21.b27.
        "Версия не равна 6.20.b17" И "Версия не равна 6.20.b12" – ДА = ПРОБЛЕМА. Потому что выполняются оба условия.

        Comment

        • Pro-R
          Junior Member
          • Apr 2012
          • 22

          #5
          Спасибо за то что есть этот форум. Есть те с кем можно поговорить и обсудить. Заработало, только без указания времени 3600. С временем 3000 узлов выдавали аварии, хотя данные и статистика за это время были. Бог с ним - работает. Спасибо.

          Comment

          Working...