详解如何调用zabbix API获取主机

2025-05-27 0 67

前言

zabbix 作为企业级的系统和网络监控方案,对于中小型公司来说基本可以很好的满足对机器的监控需求,因为其部署方便,操作简单深受现在各个互联网公司喜爱,所以现在基本的互联网公司监控用zabbix的非常多,当你安装好zabbix服务端 后,如果启动自动注册功能,在所有客户机安装后会自动在zabbix平台上被监控到,但这里有个问题,如果你机器数量非常少,如果还能数的过来那基本没什么问题,但如果你机器上千台了,这个时候那些机器被监控中,那些没被监控,查起来就没那么方便了,所以日常运维中经常发现的问题就是某台机器故障了但没报警,经查发现这台机器zabbix客户端因为某种原因导致没有被服务端监控到,像这种问题怎么办呢?其实最简单的方案就是从zabbix里获取所有被监控的服务器列表,然后跟运维资产数据库去比对,如果数量一致,那说明监控没漏机器,如果比对不上,就把对不上的ip发出来再报个警就可以了,整体逻辑就是这样。

zabbix api是在1.8版本中开始引进并且已经被广泛应用。所有的zabbix移动客户端都是基于api,甚至原生的web前端部分也是建立在它之上。zabbix api 中间件使得架构更加模块化也避免直接对数据库进行操作。它允许你通过json rpc协议来创建、更新和获取zabbix对象并且做任何你喜欢的操作【当然前提是你拥有认证账户】。

zabbix api提供两项主要功能:

  • 远程管理zabbix配置
  • 远程检索配置和历史数据

我们今天用zabbix api获取被监控的所有机器列表

代码如下

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43
#!/usr/bin/evn python

import requests

import json

zabix_root = 'http://10.0.1.29/zabbix'

url = zabix_root + '/api_jsonrpc.php'

# user.login

payload = {

"jsonrpc" : "2.0",

"method" : "user.login",

"params": {

'user': 'admin',

'password':'',

},

"auth" : none,

"id" : 0,

}

headers = {

'content-type': 'application/json',

}

req = requests.post(url, json=payload, headers=headers)

auth = req.json()

# host.get

payload = {

"jsonrpc" : "2.0",

"method" : "host.get",

"params": {

'output': [

'hostid',

'name'],

},

"auth" : auth['result'],

"id" : 2,

}

res2 = requests.post(url, data=json.dumps(payload), headers=headers)

res2 = res2.json()

for host in res2['result']:

with open('host.txt', 'a+') as f:

f.write(host['name'] + '\\n)

脚本一共分二部分,第一部分是用户登录,登录后然后获取主机列表,最后写到一个文件里去,所以脚本运行的结果是生成一个所有被监控的ip列表,通过这个列表你就可以去跟你的资产库信息去对比了,还有这个脚本用的requests,所以看起来要清爽很多,代码比较简单,就是二个post就不做太多解释了。

总结

以上就是关于调用zabbix api获取主机的全部内容了,喜欢的小伙伴可以在此基础上修改成合适自己业务的脚本,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

原文链接:https://www.mindg.cn/?p=1790

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 行业资讯 详解如何调用zabbix API获取主机 https://www.kuaiidc.com/63272.html

相关文章

发表评论
暂无评论