如何调用Zabbix API获取主机信息?
  JLfR0R6RmX5C 2023年11月02日 56 0

自Zabbix 1.8版本被引进以后,Zabbix API开始扮演着越来越重要的角色,它可以为批量操作、第三方软件集成以及其他应用提供可编程接口。

在运维实践中,Zabbix API还有更多巧妙的应用。

面对规模庞大的监控设备,可能会出现某台机器发生故障但却没有报警的情况,个中缘由可能是这台机器的Zabbix客户端因为某种原因没有被服务端监控到。

解决这个问题也非常简单。为了避免某些机器未被系统监控和纳管,最简单的方案是通过调用Zabbix API获取所有被监控的主机列表,然后与运维资产数据库进行比对即可。具体操作如下:

#!/usr/bin/evn python

import requests
import json

ZABIX_ADD = 'http://10.0.1.29/zabbix'
url = ZABIX_ADD + '/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')

如何调用Zabbix API获取主机信息?_运维

以上脚本一共分为两个部分。第一部分是用户登录;第二部分用户登录后获取主机列表,最后写到一个文件中。整个脚本运行的结果是生成一个所有被监控的IP列表,通过这个列表就可以实现跟资产库信息进行对比,从而发现未被监控的主机。

以上就是这一期的技术分享。

大家好,我是乐乐,关注我,学习更多Zabbix使用小技巧,如在Zabbix使用过程中碰到问题,还可以到乐维社区进行留言提问。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  SzVG4h2uFmuP   2023年12月12日   29   0   0 zabbix
  SzVG4h2uFmuP   2023年12月09日   42   0   0 zabbix
JLfR0R6RmX5C