Ad Widget

Collapse

Прототипы триггеров "Создать активированным", "Автоопределение".

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Alex_UUU
    Senior Member
    • Dec 2018
    • 541

    #1

    Прототипы триггеров "Создать активированным", "Автоопределение".

    Заббикс 5.4.

    В прототипах триггеров есть галочки Создать активированным, Автоопределение.
    Смысл их понятен. Если нет в "Автоопределении", то триггер не создается.
    А можно этим управлять при дискаверинге? Т.е. какой-то макрос устанавливает/снимает галочку.
    Просто задача: Дискаверинг отдает сотню ЭД, но триггеры надо вешать только на некоторые.
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Да, можно - при помощи правил замещения (overrides).
    К сожалению, русский перевод документации по версии 5.4 далеко не всегда соответствует английскому оригиналу (а сейчас уже и нет возможности что-то поправить, поскольку эта версия более не поддерживается). Так что либо читайте по-английски по ссылке выше, либо могу порекомендовать почитать то же место в документации по версии 6.0 (там мало что принципиально поменялось в этой области).

    Comment

    • Alex_UUU
      Senior Member
      • Dec 2018
      • 541

      #3
      Сенкс. Стал подробнее разбираться, дошел до замещения. Пока отложил, пусть уляжется в голове. :-)
      Пока поступил "в лоб": создаю триггеры в которых ставлю конкретное условие и and {$ALARM:"{#ITEM}"} <> false
      По умолчанию {$ALARM}=false
      Для нужных ЭД просто добавляю нужный макрос со значением.
      Итог: тригггеры создаются, но срабатывают только нужные.

      Comment

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

        #4
        Originally posted by Alex_UUU
        Сенкс. Стал подробнее разбираться, дошел до замещения. Пока отложил, пусть уляжется в голове. :-)
        Да, данная задача как раз делается с помощью замещений.
        Неочевидный момент при этом: когда в настройках замещений выставляются условия для операций (типа "если прототип элемента данных содержит такую-то строку..."), то сравнивается именно название соответствующего объекта (элемента данных, триггера, графика). Обычно для прототипов элементов данных хочется по привычке использовать ключ, но в данном случае это не так: сравнивается не ключ, а имя.

        Comment

        • Alex_UUU
          Senior Member
          • Dec 2018
          • 541

          #5

          Еще раз спасибо.
          Тут, пока не поешь, вкус не узнаешь :-)
          Задача, стояла, вроде простая: есть файл логов nginx, например. И из него надо вылавливать статистику, например. по кодам возврата и времени выполнения. Количество, макс, среднее. По направлениям. Разные системы. Вручную прописывать не хочется и вешать кучу ЭД log. Написал сервис, которому скармливаешь (да, уже длинный) json и одним запросом получаешь и параметры для дискаверинга и значения. Дальше идут "зависимые элементы". Значений много. Графики строятся, проблемы вызуализируются. мало того, там получается три уровня, т.к. файлы логов разные: {#FILE} {#REGEXP} {#ITEM}
          (блин, пишу это, чтобы у самого в голове систематизировать :-)
          Через LLD макросы определяю макросы выше.
          И имею три дискаверинга, создающие ЭД.
          В первом {#FILE}
          во втором {#FILE} {#REGEXP}
          В третьем {#FILE} {#REGEXP} {#ITEM}
          Но появилась задача на некоторые ЭД повесить триггеры.
          Значит у себя в конфиге я добавляю еще параметр, который будет LLD макросом {#TRIGGER} и иметь некоторое значение.
          И тогда Дискаверинг будет
          В первом {#FILE} {#TRIGGER}
          во втором {#FILE} {#REGEXP} {#TRIGGER}
          В третьем {#FILE} {#REGEXP} {#ITEM} {#TRIGGER}

          А в замещении условие {#TRIGGER} содержит ^.+$ значит прототип создается с галочкой дискаверинг. Добавив еще один макрос, заполним тэги.
          Если надо передавать важность - тогда описываем несколько прототипов и создаем или не создаем их в зависимости от условий.

          Блин сложно, путанно. Но сам так делаю :-)

          Comment

          • Alex_UUU
            Senior Member
            • Dec 2018
            • 541

            #6
            Вроде сделал, но хочется лучше. :-)
            Чтобы не трогать сам элемент данных, настраивая все через макросы.
            Но, насколько понял, в фильтре "Макрос" - это именно LLD макрос и тут нельзя использовать пользовательские, а в регулярных выражениях макрос также использовать нельзя.
            Иначе было бы красивее:
            1. Указываю макрос по умолчанию {$TRIGGER}=""
            2. Для нужного значения определяю {$TRIGGER:"file_1 TM_1"}=100
            3 В замещении в фильтре пишу {$TRIGGER:"{#FILE} {#TM}:} соответствует \d+
            4. Ну и далее по измешениям.

            Или п.3 работает? просто я что-то не понял?

            Comment

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

              #7
              Originally posted by Alex_UUU
              Или п.3 работает? просто я что-то не понял?
              П.3 работает, но не таким образом
              В замещении в настройках фильтра пишете что-то вроде: {#FILE} matches {$FILE_REGEX}
              А дальше настраиваете макрос {$FILE_REGEX} либо на уровне шаблона, либо на уровне хоста - так, чтобы он содержал регулярное выражение, под которое подпадает только нужный набор. Например: ^/var/log/nginx/(file1|another_file).log$

              Comment

              • Alex_UUU
                Senior Member
                • Dec 2018
                • 541

                #8
                Сенкс. Сделал. Есть некий минус, чую, что можно улучшить. А так два условия, т.к. у меня два уровня, ну и в пользовательских макросах и величины для сравнения и действия (для count) и тэги.

                Comment

                Working...