Ad Widget

Collapse

вопрос по zabbix api - host.get

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • TheFatal
    Junior Member
    • Oct 2013
    • 20

    #1

    вопрос по zabbix api - host.get

    добрый день, возникла задача "грепнуть" в заббиксе все хосты у которых нет Availability, то есть по zabbix agent (в моем случае) они недоступны, я пробовал делать так:

    #!/bin/bash
    curl -i -X POST -H 'Content-Type:application/json' -d'
    {"jsonrpc": "2.0",
    "method":"host.get",
    "params": {
    "output": "shorten",
    "sortfield": "name",
    "filter": {
    "available": 0
    }
    },
    "auth": "72f5d670609c6c86647e4bb3b2f96398",
    "id": 0}' http://zabbix.dvesti.ru/api_jsonrpc.php


    в выводе {"jsonrpc":"2.0","result":[{"hostid":"10372"},{"hostid":"10365"},{"hostid":"1 0392"} и.т.д.

    собтвенно вопросы:

    правильно ли я грепаю, т.к. у некоторых хостов из списка Availability по агенту есть ?
    как сделать, чтобы в выводе светились hostname, а не hostid ?
  • sadman
    Senior Member
    • Dec 2010
    • 1611

    #2
    Originally posted by TheFatal
    "output": "shorten",
    как сделать, чтобы в выводе светились hostname, а не hostid ?
    изменить output

    Попробуйте "output": "extend" на бОльшей выборке (без фильтра, например), проверьте соответствие значений полей ожиданиям....

    Comment

    • ableev
      Senior Member
      Zabbix Certified Specialist
      • Oct 2012
      • 276

      #3
      Проще и быстрее – поселектить из базы.

      Comment

      • gescheit
        Senior Member
        • Jul 2007
        • 156

        #4
        zapi.host.get({"filter": {"available": 0},
        "output": ["name", "available"]
        })
        Вот то что надо. Брать данные из БД - моветон.

        Comment

        • ableev
          Senior Member
          Zabbix Certified Specialist
          • Oct 2012
          • 276

          #5
          Моветон, не моветон, а быстрее – это точно.

          Comment

          • TheFatal
            Junior Member
            • Oct 2013
            • 20

            #6
            Originally posted by gescheit
            zapi.host.get({"filter": {"available": 0},
            "output": ["name", "available"]
            })
            Вот то что надо. Брать данные из БД - моветон.
            спасибо, похоже как раз то, что нужно :d

            Comment

            • Jimson
              Senior Member
              • Jan 2008
              • 1327

              #7
              Originally posted by ableev
              Моветон, не моветон, а быстрее – это точно.
              Важнее не скорость, а то что если данные (списки хостов и элементов данных) нужны для скриптов обрабатывающих данные (trapper), то использование в них REST приведет к неработоспособности скриптов при выключении frontend, апача, например, опустить. Крайне некрасиво. А если данные выгребаются для отчетов, то как раз лучше API использовать.

              Comment

              Working...