Ad Widget

Collapse

Прототип тригера

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • voler
    Member
    • Feb 2014
    • 80

    #1

    Прототип тригера

    Добрый день,

    Пытаюсь сделать вот такой прототип тригера
    {DtCenter:ifHCOutOctets.{#SNMPINDEX}.min(900)}>{$P ORT{#SNMPINDEX}_MORMB}
    {$PORT{#SNMPINDEX}_MORMB} - это переменная где указывается скорость, при которой слать аларм.


    Получаю ошибку, не могу понять где ошибся.
    trigger_prototypes.php:240 → CFrontendApiWrapper->create() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → call_user_func_array() → CTriggerPrototype->create() → CTriggerGeneral->validateCreate() → CTriggerGeneral->checkTriggerExpressions() → CApiService::exception() in include/classes/api/services/CTriggerGeneral.php:442]
  • voler
    Member
    • Feb 2014
    • 80

    #2
    Добрый день.

    Может все таки, кто-то сталкивался с мониторингом загрузки порта? В ручную создавать сложно, а вот прототип создать не могу.

    Comment

    • voler
      Member
      • Feb 2014
      • 80

      #3
      Добрый день,

      Подскажите может все таки, кто сталкивался
      Если делаю вот такой прототип {DtCenter:ifHCInOctets.["{#SNMPINDEX}"].min(900)}>30000
      Все ое, но тут загрузка порта указывается жестко.

      А нужно сделать возможность эту цифру указывать через Макросы
      {DtCenter:ifHCInOctets.["{#SNMPINDEX}"].min(900)}>{$PORT["{#SNMPINDEX}"]_MINMB}

      Некорректное выражение триггера. Проверьте часть выражения начиная с ">{$PORT["{#SNMPINDEX}"]_MINMB}"
      Подскажите может ошибка с кавычками?

      Comment

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

        #4
        Макросы не раскрываются рекурсивно. Но макросы с контекстом Вас спасут - они как раз для Вашей ситуации (см. также пример тут).
        Last edited by Kos; 30-08-2018, 14:20.

        Comment

        • voler
          Member
          • Feb 2014
          • 80

          #5
          Не знаю правильно я понял вашу мысль, но спрошу. Вы мне дали ссылку, где используется $LOW_SPACE_LIMIT как общим макрос, {#FSNAME} как динамический, исходя из нуженой (найденной) ФС.
          В моем случаи это будет вот так выглядеть.
          {DtCenter:ifHCInOctets.["{#SNMPINDEX}"].min(900)}>{$MINMB} Где {$MINMB} минимальный трафик для интерфейса, а ifHCInOctets.["{#SNMPINDEX}"] динамически определяет кол-во интерфейсов.

          Это выход, но потом в определенном хосте для всех портов я могу поставить на мониторинг нужный порт, {$MINMB} изменив параметр для определенного узла.

          Comment

          • voler
            Member
            • Feb 2014
            • 80

            #6
            в имени нормально отрабатывает параметр {$port["{#snmpindex}"]__desc}

            Comment

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

              #7
              Насколько я понимаю, в Вашем случае условие триггера должно быть что-то вроде такого:
              {DtCenter:ifHCInOctets.["{#SNMPINDEX}"].min(900)}>{$MINMB:"{#SNMPINDEX}"}

              На уровне шаблона или хоста определяете макрос:
              {$MINMB} = 30000

              Он будет содержать пороговое значение "по умолчанию" для всех обнаруженных портов свитча, при необходимости для конкретного порта можно будет это пороговое значение переопределить, создав ещё один макрос {$MINMB:индекс} (конкретное значение индекса увидите, когда правило LLD отработает и создаст нужные элементы данных и триггеры).

              Comment

              • voler
                Member
                • Feb 2014
                • 80

                #8
                Проверил, работает. Но вот триггер создается и выглядит вот так
                {Muzey_Nikulino2018:ifHCInOctets.["1"].min(900)}>{$MORMB:"1"}
                На против некоторых надпись "Cannot evaluate expression: Invalid macro '{$MINMB:"1"}' value"

                Comment

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

                  #9
                  ну нормально. {$mormb} будет макросом со значением по умолчанию, а {$mormv:"1"} - макросом для конкретного порта.
                  у вас, видимо, не был определён ни один из них, поэтому при получении новых значений триггер не мог найти значение макроса и ругался.
                  Last edited by Kos; 31-08-2018, 12:15. Reason: Особенность движка этого форума: иногда принудительно переводит буквы и нижний регистр. Конечно, имена макросов должны быть uppercase.

                  Comment

                  Working...