Ad Widget

Collapse

Отчёты в Zabbix

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • boe
    Junior Member
    • Dec 2012
    • 24

    #1

    Отчёты в Zabbix

    Добрый день.

    Есть такая задачка:
    Необходимо раз в день делать отчёт по ключевым устройствам, которые мониторятся заббикссом, с последующей отправкой по почте.
    Приблизительные данные, по которым необходимо отчитаться : названия устройств, их текущее состояние на момент создания отчёта, время и количество срабатываний выбранных триггеров за отчётный период по каждому устройству.

    Если у кого есть наработки в этом направлении, или просто дельные советы - поделитесь, буду благодарен.
  • neogan
    Senior Member
    Zabbix Certified Trainer
    Zabbix Certified SpecialistZabbix Certified Professional
    • Sep 2011
    • 118

    #2
    Привет

    Думаю что тут тебе будет в помощь Zabbix API

    Как правило нужно написать скрипт на любимом языке используя уже готвые библиотеки для Zabbix API
    Структура примерно следующая, куча цыклов:
    - используя host.get получаем хосты фильтруя по группе в ответ получая имена и еще кучу полезной информации (для начала советую посмотреть что возвращается функцией с помощью "output":"extend")
    ну и так далее используя eventid получить евенты за определенное время

    Comment

    • bga83
      Senior Member
      • Sep 2011
      • 268

      #3
      Я api не осилил и подобную информацию напрамую дергал из базы. Все писалось на php.

      Comment

      • Jimson
        Senior Member
        • Jan 2008
        • 1327

        #4
        Api, как минимум, реализует выборки с учетом прав пользователя, так что лучше "осилить"

        Comment

        • boe
          Junior Member
          • Dec 2012
          • 24

          #5
          Originally posted by neogan
          Привет

          Структура примерно следующая, куча цыклов:
          - используя host.get получаем хосты фильтруя по группе в ответ получая имена и еще кучу полезной информации (для начала советую посмотреть что возвращается функцией с помощью "output":"extend")
          ну и так далее используя eventid получить евенты за определенное время
          Не будучи сильным в программировании, всё-же пробую наваять кое-что на перле..., вроде не сложно, но не всё понятно.
          Например:
          Если беру события за отпределённый период получаю -
          'source' => '0',
          'value_changed' => '0',
          'object' => '0',
          'acknowledged' => '0',
          'value' => '2',
          'objectid' => '59732',
          'ns' => '179857854',
          'clock' => '1369628915',
          'eventid' => '1585354'

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

          Приблизительно такая же ситуация с тригерами. Не понял какими даными оперировать, чтоб в можно было извлечь информацию типо: На хосте Х, за период времени У, срабатывали следующие тригеры: ... .
          Last edited by boe; 29-05-2013, 12:50.

          Comment

          • Jimson
            Senior Member
            • Jan 2008
            • 1327

            #6
            там небыло, нет и никогда не будет прямой связи

            1) object_id для события это как раз ссылка на объект по которому произошло событие, возможны два варианта: либо это идентификатор триггера, либо идентификатор правила дискаверинга, на что именно ссылается objectid можно определить по типу события

            2) тригерры вообще ни на что не ссылаются, это "оконечная сущность", на триггер ссылаются функции и функции же ссылаются на элементы данных, а уже элемент данных ссылается на хост

            Логика понятна? Событие оно происходит в вашем случае с триггером, с хостом оно не может быть связанно потому что правило триггера не обязательно содержит элементы данных только одного хоста, вы вполне можете создать триггер, который анализирует данные нескольких хостов или даже использует групповые функции.

            Comment

            • boe
              Junior Member
              • Dec 2012
              • 24

              #7
              Jimson, большое спасибо за разъяснения.
              Дискаверинг у меня выключен, objectid – в моём случае триггер.
              Событие указывает на триггер, триггер – на шаблон (параметр ‘templateid’), который может быть привязан к многим устройствам, и это тупик.
              Так всё же, возможно ли средствами АPI создать отчёт описанный выше?
              Если да, то подскажите по какой цепочке двигаться.

              Comment

              • Jimson
                Senior Member
                • Jan 2008
                • 1327

                #8
                я же написал, ну ?
                триггер <- функция -> итем -> хост
                что не понятно то? триггер сам ни на что не ссылается

                Comment

                • boe
                  Junior Member
                  • Dec 2012
                  • 24

                  #9
                  Originally posted by jimson
                  триггер <- функция -> итем -> хост
                  Как мне получить значения функций?
                  Как я понял мне от них нужно отталкиваться.

                  Comment

                  • Jimson
                    Senior Member
                    • Jan 2008
                    • 1327

                    #10
                    ну в базе это таблица functions, а как через API собрать связи triggers -> hosts я не знаю, копайте php классы

                    Comment

                    • boe
                      Junior Member
                      • Dec 2012
                      • 24

                      #11
                      С сожалению, с php знаком плохо, наверно не осилю.

                      В веб-интерфейсе, в меню "события", используя фильтр, есть возможность посмотреть историю выбранного триггера.
                      Подскажите, как можно добавить такого вида информацию на комплексный экран.

                      Comment

                      Working...