Ad Widget

Collapse

Zabbix 3.2.1 API - Проблемы

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • shicoy
    Junior Member
    • Jun 2014
    • 14

    #1

    Zabbix 3.2.1 API - Проблемы

    Используем Zabbix API для интеграции со своей NMS.

    Столкнулись со следующими проблемами:

    1) Триггер находится в состоянии "деактивирован", но через API получаем у него status = 0, это баг или проверка активен/деактивен проводится другим способом?


    2) Триггер имеет описание "Устаревшая прошивка {ITEM.LASTVALUE1}", но каким образом через API можно получить значение {ITEM.LASTVALUE1} ? Что бы в описание проблемы добавить "Устаревшая прошивка FW02.001" (как пример).

    Просто очень не хочется обращаться напрямую к БД Заббикса, а делать это все через API
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    1) Насколько я понимаю, если триггер именно disabled, status = 1.
    Другое дело, если он enabled, но disabled упомянутый в нем item или хост, с которым связан триггер. Тогда status = 0, как у живых.
    Для фильтрации неактивных триггеров через API лучше использовать флаг monitored = 1.
    2) Значение {ITEM.LASTVALUE1} в триггере, конечно, не содержится. За ним - к айтему, о котором идет речь в триггере.

    Comment

    • shicoy
      Junior Member
      • Jun 2014
      • 14

      #3
      c 1) разобрались.
      а в от с 2) не очень понятно, как именно выяснить значение какой переменной надо брать (если скажем в триггере их несколько).
      Вообщем живой примерчик или хотя бы алгоритм)

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #4
        {ITEM.LASTVALUE1} относится к первому упомянутому в выражении триггера айтему (слева направо), {ITEM.LASTVALUE2} - ко второму, etc.

        Comment

        • shicoy
          Junior Member
          • Jun 2014
          • 14

          #5
          Originally posted by semiadmin
          {item.lastvalue1} относится к первому упомянутому в выражении триггера айтему (слева направо), {item.lastvalue2} - ко второму, etc.
          Это понятно.
          Но, что бы api получить значение {item.lastvalue1} необходимо:
          - получить выражение триггера
          - отпарсить выражение триггера на предмет поиска элементов данных
          - получить нужны элемент данных
          - получить последнее значение элемента данных

          как бы все ничего, кроме как написания собственного парсера выражения триггера, как-то оно имху не правильно.

          Comment

          • Semiadmin
            Senior Member
            • Oct 2014
            • 1625

            #6
            Для этого в методе trigger.get есть параметр selectFunctions. Itemid в полученном списке словарей будут в том же порядке, как и в триггере.
            Last edited by Semiadmin; 16-08-2017, 10:13.

            Comment

            • shicoy
              Junior Member
              • Jun 2014
              • 14

              #7
              Originally posted by semiadmin
              Для этого в методе trigger.get есть параметр selectfunctions. Itemid в полученном списке словарей будут в том же порядке, как и в триггере.
              Спасибо большое!)))

              Comment

              • Semiadmin
                Senior Member
                • Oct 2014
                • 1625

                #8
                Можно еще попробовать параметр expandDescription=1, он вытягивает значение {ITEM.LASTVALUE} в имени триггера. Но результат придется парсить, чтобы отсечь "Устаревшая прошивка" от "FW02.001".
                Хотя, вроде бы, вам и нужен весь текст. Правда, я слышал от знающего человека, что это работает далеко не для всех макросов, встречающихся в триггерах.
                Last edited by Semiadmin; 16-08-2017, 11:41.

                Comment

                Working...