0
Я использую pyzabbix
для взаимодействия с Zabbix и получить то, что я хочу:Анализировать Zabbix формат вывода
#!/usr/bin/env python
# import
import sys, subprocess, time, datetime, csv, platform
from pyzabbix import ZabbixAPI
# api/vars
url='http://172.18.64.100/zabbix'
zh = ZabbixAPI(url)
zh.login(user="Admin",password="xxxxxxxx")
groupid = sys.argv[1]
# get group from argv
group = zh.hostgroup.get(output="shorten", filter={"groupid": [groupid]}, monitored_hosts="1")
# get hosts from looping group above
hosts = zh.host.get(output="count", monitored_hosts="1", groupids=[x['groupid'] for x in group])
# print
for hostid in hosts:
print hostid
triggers = zh.trigger.get(filter={"hostid": hostid}, active="1", output=['description'])
print triggers
Таким образом, выход работает, но мне нужно фильтровать и я борюсь:
{u'hostid': u'10166'}
[{u'triggerid': u'14138', u'description': u'Servidor Reiniciado'}, {u'triggerid': u'14139', u'description': u' Pin
u'18082', u'description': u'Interface 7A'}, {u'triggerid': u'18083', u'description': u'Interface 7B'}, {u'trigger
scription': u'Interface 8A'}, {u'triggerid': u'18085', u'description': u'Interface 8B'}, {u'triggerid': u'18086',
nterface 9A'}, {u'triggerid': u'18087', u'description': u'Interface 9B'}, {u'triggerid': u'14140', u'description':
{u'triggerid': u'14141', u'description': u'CPU 90% utilizada'}, {u'triggerid': u'14143', u'description': u' Sem c
SNMP por 30 minutos'}, {u'triggerid': u'23138', u'description': u'Servidor Reiniciado'}]
{u'hostid': u'10412'}
[{u'triggerid': u'22084', u'description': u'Agente Zabbix inoperante'}, {u'triggerid': u'22086', u'description': u
r Database (servi\xe7o_windows - McAfeeNetworkSecurityManagerDatabase)'}, {u'triggerid': u'22088', u'description':
ork Security Manager (servi\xe7o_windows - NetworkSecurityManager)'}, {u'triggerid': u'22090', u'description': u'C
, {u'triggerid': u'22091', u'description': u'Servidor Reiniciado'}, {u'triggerid': u'22092', u'description': u'Ser
{u'triggerid': u'22122', u'description': u'Espa\xe7o em disco menor que 5% em C:'}, {u'triggerid': u'22124', u'de
xe7o em disco menor que 10% em C:'}, {u'triggerid': u'22123', u'description': u'Espa\xe7o em disco menor que 5% em
': u'22125', u'description': u'Espa\xe7o em disco menor que 10% em D:'}, {u'triggerid': u'22094', u'description':
\xedvel menor que 10%'}]
{u'hostid': u'10413'}
[{u'triggerid': u'22102', u'description': u'Agente Zabbix inoperante'}, {u'triggerid': u'22104', u'description': u
r Database (servi\xe7o_windows - McAfeeNetworkSecurityManagerDatabase)'}, {u'triggerid': u'22106', u'description':
ork Security Manager (servi\xe7o_windows - NetworkSecurityManager)'}, {u'triggerid': u'22108', u'description': u'C
, {u'triggerid': u'22109', u'description': u'Servidor Reiniciado'}, {u'triggerid': u'22110', u'description': u'Ser
{u'triggerid': u'22132', u'description': u'Espa\xe7o em disco menor que 5% em C:'}, {u'triggerid': u'22134', u'de
xe7o em disco menor que 10% em C:'}, {u'triggerid': u'22133', u'description': u'Espa\xe7o em disco menor que 5% em
': u'22135', u'description': u'Espa\xe7o em disco menor que 10% em D:'}, {u'triggerid': u'22112', u'description':
\xedvel menor que 10%'}]
Я просто хочу «НомерУзла» и «описание» часть продукции, я имею в виду:
hostid - 10166
Servidor Reiniciado
Ping
Interface 7A
Interface 7B
...
hostid - 10412
Agente Zabbix inoperante
...
...
Вы имеете в виду, что вам нужно получить поле 'description' из всех' триггеров' и объединить их в одну строку? – Arnial
да, мне просто нужно получить «описание» и конкатенацию для первого хоста, а затем для второго, спасибо! –
Я только что привел пример, но результат не обязательно должен быть таким, поскольку он конкатенирует только описание, это прекрасно для меня :) –