Ad Widget

Collapse

Количество активных портов в группе

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Gabalino
    Senior Member
    • Mar 2013
    • 103

    #1

    Количество активных портов в группе

    Добрый день!
    Есть задача: посчитать количество актывных портов на коммутаторах в группе. С помощью SQL запроса вроде моего, получается очень долго и не эффективно. Подскажите, как решить эту задачу через API?

    Code:
    SELECT * FROM history_uint WHERE value = '1' AND itemid IN (
    SELECT itemid FROM items WHERE key_ like 'ifOperStatus%' AND hostid IN (
    SELECT hostid FROM hosts_groups WHERE groupid IN (
    SELECT groupid FROM groups where name = 'Switch')));
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    По-моему, в вашем случае подойдут агрегированные проверки

    Comment

    • Gabalino
      Senior Member
      • Mar 2013
      • 103

      #3
      Originally posted by semiadmin
      По-моему, в вашем случае подойдут агрегированные проверки

      https://www.zabbix.com/documentation...ypes/aggregate
      Агрегированыые проверки в данном случае не подходят, в них нельзя выставить фильтр по значению.

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #4
        А зачем фильтр? Если порт up, то ifOperStatus =1, функция sum даст то, что нужно для группы хостов. Если, конечно, down - 0.
        Last edited by Semiadmin; 12-09-2016, 20:39.

        Comment

        • Gabalino
          Senior Member
          • Mar 2013
          • 103

          #5
          Originally posted by Semiadmin
          А зачем фильтр? Если порт up, то ifOperStatus =1, функция sum даст то, что нужно для группы хостов. Если, конечно, down - 0.
          Проблема в том, что

          1 ⇒ up
          2 ⇒ down
          3 ⇒ testing

          Думаю нужно смотреть в сторону API, но опыта в этом нет.

          Comment

          • Gabalino
            Senior Member
            • Mar 2013
            • 103

            #6
            Запроса через API выполняется очень долго и возвращает []. В чём может быть причина?

            Code:
            ah = zapi.history.get({'itemids':'225056','history':'0','output':'extend',"sortfield":"clock","sortorder":"DESC",'limit':'1'})
            print ah

            Comment

            • Semiadmin
              Senior Member
              • Oct 2014
              • 1625

              #7
              Как вариант, если есть триггеры, срабатывающие на закрытие порта, то можно попробовать считать не айтемы, а соответствующие им триггеры в нужном состоянии. Не придется обращаться к тяжелым таблицам history.

              Comment

              Working...