第一步:通过host.get读取被监管的设备
- 通过此步骤,可以知道设备的IP,名称,hostid
第二步:通过item.get读取某台设备的监控项
- 参数为第一步的hostid
- 通过此步骤,可以获得每一项的itemid
第三步:通过history.get读取监控数据
- 参数为第一步的hostid,第二步的itemid,还有读取的时间范围
下面以python代码为例演示一下
首先安装第三方包
参见这里https://www.zabbix.com/integrations/python,最流行的是py-zabbix
$ pip install py-zabbix
演示第一步
# 代码
from pyzabbix.api import ZabbixAPI
zapi = ZabbixAPI(url='https://zabbix.xxx.cn/', user='admin', password='xxx')
resp = zapi.do_request('host.get', dict(monitored_hosts=1, output='extend'))
for h in resp['result']:
print(h['hostid'], h['host'], h['name'], )
# 效果
$ python zabbix_tools.py
10106 192.168.10.2 梅林A12-05交换机(主)
10107 192.168.10.3 梅林A12-05交换机(备)
10108 192.168.10.101 梅林-10.101(yeahka官网)
10124 192.168.14.2 梅林A12-05防火墙(主)
10126 192.168.20.123 梅林-20.123(Nginx^主)
10127 192.168.20.124 梅林-20.124(Nginx^备)
10128 192.168.21.5 梅林A12-13交换机(主)
10129 192.168.21.6 梅林A12-13交换机(备)
...
演示第二步
# 代码
from pyzabbix.api import ZabbixAPI
zapi = ZabbixAPI(url='https://zabbix.xxx.cn/', user='admin', password='xxx')
resp = zapi.do_request('item.get', dict(hostids=['11410']))
for item in resp['result'][:10]:
print(f"{item['hostid']}\t{item['itemid']}\t{item['name']}\t\t{item['snmp_oid']}\t\t{item['key_']}")
# 效果
$ python zabbix_tools.py
11410 743271 BgpPeerState_To_YS_CE88_CSW SNMPv2-SMI::mib-2.15.3.1.3.172.20.2.27 BgpPeerState_To_YS_CE88_CSW
11410 743272 BgpPeerState_To_YS_R5 SNMPv2-SMI::mib-2.15.3.1.3.172.20.2.28 BgpPeerState_To_YS_R5
11410 743273 BgpPeerState_To_YS_R6 SNMPv2-SMI::mib-2.15.3.1.3.172.20.2.29 BgpPeerState_To_YS_R6
11410 743274 BgpPeerState_To_YS_R7 SNMPv2-SMI::mib-2.15.3.1.3.172.20.2.30 BgpPeerState_To_YS_R7
11410 505279 S5730-Master-CPU使用率 .1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5.68157449 Master_CPUUsag
11410 505285 S5730-Master-内存使用率 .1.3.6.1.4.1.2011.5.25.31.1.1.1.1.7.68157449 Master_MemoryUsag
11410 505291 S5730-MasterTemperature .1.3.6.1.4.1.2011.5.25.31.1.1.1.1.11.68157449 Master_Temperature
11410 505282 S5730-Slave-CPU使用率 .1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5.69206025 Slave_CPUUsag
11410 505288 S5730-Slave-内存使用率 .1.3.6.1.4.1.2011.5.25.31.1.1.1.1.7.69206025 Slave_MemoryUsag
11410 505294 S5730-SlaveTemperature .1.3.6.1.4.1.2011.5.25.31.1.1.1.1.11.69206025 Slave_Temperature
...
演示第三步
# 代码
from pprint import pprint
from pyzabbix.api import ZabbixAPI
zapi = ZabbixAPI(url='https://zabbix.xxx.cn/', user='admin', password='xxx')
resp = zapi.do_request('history.get', dict(hostids=['11410'], itemids=['321257'], time_from=int(time.time()-300)))
pprint(resp)
# 效果
$ python zabbix_tools.py
{'id': '1',
'jsonrpc': '2.0',
'result': [{'clock': '1667974621',
'itemid': '321257',
'ns': '267804369',
'value': '19367288'},
{'clock': '1667974680',
'itemid': '321257',
'ns': '746184779',
'value': '19497304'},
{'clock': '1667974736',
'itemid': '321257',
'ns': '805546976',
'value': '22972520'},
{'clock': '1667974798',
'itemid': '321257',
'ns': '940614209',
'value': '30124024'},
{'clock': '1667974858',
'itemid': '321257',
'ns': '398365275',
'value': '18876360'}]}
网友评论