Ad Widget

Collapse

Вопрос по Zabbix API

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • sersad
    Senior Member
    • May 2009
    • 518

    #16
    Code:
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    from pyzabbix import ZabbixAPI ##sudo pip install pyzabbix
    
    zapi = ZabbixAPI("http://ччч.чччч.ччч")
    zapi.login("ччч", "чччч")
    print "Connected to Zabbix API Version %s" % zapi.api_version()
    
    inv = zapi.host.get(hostids='21708', output='extend', selectInventory =['site_address_a','location_lat','location_lon'])
    print "host = %s location_lon = %s location_lat = %s" % (inv[0]["host"], inv[0]["inventory"]["location_lon"], inv[0]["inventory"]["location_lat"])
    Ответ
    Code:
    Connected to Zabbix API Version 3.2.2
    host = 10.хх.хх.хх location_lon = хх.230687 location_lat = хх.025777
    [Finished in 0.479s]

    Comment

    • EdwardK
      Junior Member
      • Nov 2016
      • 18

      #17
      Спасибо за помощь.

      Этим кодом и вытащил координаты

      Comment

      • EdwardK
        Junior Member
        • Nov 2016
        • 18

        #18
        Возвращаясь к теме координат , вывожу координаты хостов данным кодом :

        Code:
        from zabbix.api import ZabbixAPI
        
        # Create ZabbixAPI class instance
        zapi = ZabbixAPI(url='http://******/api_jsonrpc.php', user='******', password='********')
        
        # Get all disabled hosts
        inv = zapi.host.get(output='extend', selectInventory =['location_lat','location_lon'])
        hostnames = [host['host'] for host in inv]
        
        i = 0
        counter = 1
        
        
        for i in range(len(inv)):
         print( (inv[i]["inventory"]["location_lon"],inv[i]["inventory"]["location_lat"]))
         i += 1
        Но в консоли получаю :

        Code:
        ('21.178797', '56.888384')  
        ('21.373250', '56.588044')  
        ('24.136921', '56.965521')
        ('26.231814', '56.858971')
        ('24.123382', '56.951146')
        ('25.399601', '57.540989')
        ('24.542900', '57.090442')
        ('24.195841', '56.941685')
        ('27.334804', '56.506027')
        ('24.721124', '57.513086')
        ('26.524906', '55.871163')
        ('21.569779', '57.394573')
        ('24.602284', '56.814861')
        ('24.069006', '56.953881')
        ('24.084663', '56.899869')
        ('24.069649', '56.935808')
        ('27.330584', '56.504668')
        ('23.705500', '56.636828')
        ('26.551209', '55.877121')
        ('21.569492', '57.390341')
        ('25.874744', '56.493678')
        ('22.494440', '56.666431')
        ('24.228348', '56.987427')
        ('24.124730', '56.952129')
        ('24.176538', '56.959010')
        ('24.192359', '56.955978')
        ('24.176832', '56.912156')
        ('24.123798', '56.993229')
        ('24.136865', '56.947524')
        ('25.275548', '57.313959')
        ('24.184165', '56.914581')
        ('25.434818', '57.526941')
        ('23.706922', '56.650893')
        ('23.798177', '56.972473')
        ('21.007718', '56.55441')
        ('24.048731', '57.033380')
        ('27.332994', '56.510777')
        ('24.112539', '56.948806')
        ('24.217394', '56.943722')
        ('24.000057', '56.962111')
        ('23.999837', '56.949297')
        ('24.180602', '56.928515')
        ('24.119900', '56.952711')
        ('24.106345', '56.923065')
        ('24.097566', '57.036262')
        ('24.012967', '56.960441')
        ('24.239952', '56.967201')
        ('23.746500', '56.661800')
        ('21.562657', '57.389835')
        ('21.597124', '57.404478')
        ('21.165040', '56.535391')
        ('21.958427', '56.966872')
        ('24.094625', '56.902957')
        ('23.615579', '56.960914')
        ('24.177031', '56.964235')
        ('24.129152', '56.959584')
        ('24.037717', '56.929404')
        ('24.111996', '56.957683')
        ('21.011426', '56.510440')
        ('24.160102', '56.926967')
        ('24.206486', '56.941018')
        ('24.037110', '56.960714')
        ('25.416962', '57.541661')
        ('21.004085', '56.491755')
        ('23.725243', '56.651288')
        ('21.002533', '56.536471')
        ('21.010566', '56.507638')
        ('21.013745', '56.534394')
        ('24.200236', '56.932189')
        ('24.853770', '57.153975')
        ('24.334280', '56.854841')
        ('26.519318', '55.871781')
        ('24.053040', '56.959416')
        ('23.157400', '56.967800')
        ('24.120972', '56.947697')
        ('24.185612', '56.958384')
        ('26.518325', '55.873003')
        ('24.171765', '56.944931')
        ('21.968649', '56.968295')
        ('26.526419', '55.900349')
        ('24.105786', '56.946294')
        ('24.187271', '56.950172')
        ('21.017034', '56.524091')
        ('27.265883', '57.132826')
        ('25.419254', '57.546850')
        ('23.732000', '56.640639')
        ('22.583711', '57.238822')
        ('21.990935', '56.957459')
        ('24.118856', '56.970602')
        ('24.202935', '56.982958')
        ('24.172509', '56.920240')
        ('24.202498', '56.938149')
        ('23.617923', '56.947718')
        ('21.016089', '56.484183')
        ('21.017584', '56.514754')
        ('26.513562', '55.877928')
        ('25.281533', '57.317460')
        ('24.065007', '56.945293')
        ('24.120693', '56.954694')
        ('24.120850', '56.947600')
        ('24.176123', '56.959010')
        ('24.071162', '56.935039')
        ('24.111900', '56.957600')
        ('24.203000', '56.982600')
        ('24.144366', '56.935258')
        ('24.034900', '56.929200')
        ('25.423480', '57.538490')
        ('21.017669', '56.511434')
        ('24.202935', '56.982958')
        Traceback (most recent call last):
          File "C:/Users/EKondratjuks/PycharmProjects/ZabbixPyth/HostInfoGet.py", line 17, in <module>
            inv[i]["inventory"]["location"],
        TypeError: list indices must be integers or slices, not str
        Выводит 109 хостов из 152,дальше выкидывает ошибку(всегда на 109 хосте),есть мысли почему не дает вывести все хосты?

        Спасибо

        Comment

        • DRVTiny
          Senior Member
          • Sep 2011
          • 162

          #19
          Предполагаю, что у какого-то из хостов нет инвентори вообще, и в соотв. со странной реализацией Zabbix API вам возвращается "пустой список" вместо "пустого объекта".

          Насчёт Питона сказать не могу, но при обращении на Perl к Zabbix API такая фигня нет-нет, да вылезает: есть вызовы, которые в зависимости от наличия/отсутствия результата отправляют вам либо объект, либо список.

          Нужно смотреть присылаемый вам вебмордой Zabbix'а в ответ на host.get кусок JSON или дамп inv'а

          Comment

          • sersad
            Senior Member
            • May 2009
            • 518

            #20
            Поставьте обработчик исключенний



            Пример
            Code:
                    try:
                        zapi.hostgroup.create(
                            name=groupname,
                            )
                    except Exception as e:
                        print 'group create failed', e

            Comment

            Working...