Ad Widget

Collapse

Zabbix API: как получить список триггеров, созданных из обнаружения?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • hardver
    Junior Member
    • Sep 2015
    • 4

    #1

    Zabbix API: как получить список триггеров, созданных из обнаружения?

    Здравствуйте!
    Имеется шаблон с правилом обнаружения и прототипом триггера (id=221502).
    Пытаюсь через API получить список триггеров с хоста, к которому прикреплен данный шаблон. Однако в результате получаю все триггеры данного хоста.
    Что я делаю не так?
    Code:
    {
        "jsonrpc": "2.0",
        "method": "trigger.get",
        "params": {
            "output":["triggerid","state"],
            "hostids":"12229",
            "selectTriggerDiscovery": {
                "parent_triggerid":"221502"
            },
            "countOutput":1
    }
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Что я делаю не так?
    Во-первых, не указываете версию сервера Zabbix, с которым работаете.

    Во-вторых, пишете, что пытаетесь "через API получить список триггеров с хоста", при этом получаете "все триггеры данного хоста". Ну - что пытались, то и получили; в чём проблема-то?

    Наконец, в-третьих, если Вы на самом деле хотели получить не все триггеры, а только какие-то конкретные, то, видимо, для этого надо использовать какие-то фильтры для поиска. Насколько хватает моего знания английского, документация не оговаривает, что конструкция "selectTriggerDiscovery" каким-то образом ограничивает диапазон поиска: говорится только, что в ответ вместе с триггером будет добавлено property по имени "triggerDiscovery", содержащее discovery object (очевидно, для тех триггеров, у которых оно есть). Впрочем, при наличии параметра "countOutput":1 этого всё равно не будет видно (т.к. возвращаться будут не сами объекты, а их количество).

    Comment

    • hardver
      Junior Member
      • Sep 2015
      • 4

      #3
      1. Версия сервера zabbix - 4.4
      2. Прошу прощения за свою косноязычность.
      Требуется получить список триггеров, созданных из прототипа триггера в правиле обнаружения.
      3. Собственно хотел получить описанное в предыдущем пункте. Какие здесь можно прикрутить фильтры - ума не приложу
      "countOutput":1 - это копипаста экспериментов, так проще отслеживать результат вывода - или нашлось 28 позиций, или 117.

      Если я правильно понял, то штатными средствами получить список триггеров, созданных из конкретного прототипа, не получится?

      Comment

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

        #4
        Originally posted by hardver
        Если я правильно понял, то штатными средствами получить список триггеров, созданных из конкретного прототипа, не получится?
        Я тоже штатных средств для данной задачи не нашёл.
        У триггера есть свойство "flags", которое для триггеров, созданных механизмом LLD, равно четырём. Можно использовать его в фильтре, но такой запрос вернёт триггеры, созданные любым LLD, а не только одним конкретным. Наверное, в сочетании с "selectTriggerDiscovery" можно уже анализировать результат - делать выборку только тех элементов, у которых в поле "triggerDiscovery/parent_triggerid" будет нужный ID. Альтернативный вариант - кроме фильтра, добавить ещё поле "select" и искать, например, по имени триггера (поле "description"); возможно, по какой-то характерной части имени триггера.

        Comment

        • hardver
          Junior Member
          • Sep 2015
          • 4

          #5
          Спасибо!
          Буду пробовать.
          Плюс появилась мысль реализовать поиск нужных триггеров через теги, пока не успел проверить.

          Comment

          • Alex_UUU
            Senior Member
            • Dec 2018
            • 541

            #6
            Как поступаю я, когда надо что-о получить по API, но в документации не нахожу нужного описания и примеров.
            Сначала ищем, можно ли получить эти данные в веб-интерфейса. Если нет - значит через апи это тоже невозможно или затруднительно.
            касательно задачи:
            ссылка
            https://zabbix.ХХХХХХХ.ru/triggers.p...s%5B0%5D=11358
            В списке показывает триггеры с отметкой, что они созданы через обнаружение, т.е. прототипы. ПРи этом есть даже выборка. Отсюда следует, что такое получить можно.
            Дальше ставлю в скрипте с АПИ отладку, чтобы выводились все данные. и делаю выборку. Указывая вывод как extended и смотрю, что выводит.
            Далее уже ограничения ставлю.

            Comment

            Working...