Zabbix技术分享——如何调用Zabbix API获取主机信息

调用Zabbix API获取主机信息,发现未被监控的主机~

自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')

VfoMQ3h564f194a754f5f.png

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

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

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

YPBsXpwj64dd80e7a3af7.png

0 条评论

请先 登录 后评论
乐维君
乐维君

345 篇文章

作家榜 »

  1. 乐维君 345 文章
  2. YOHOHO 14 文章
  3. 机灵小和尚 13 文章
  4. 我是一只小菜鸡 12 文章
  5. 细雨闲花 11 文章
  6. 御前侍卫张五哥 9 文章
  7. 。。。 8 文章
  8. 小黄人 8 文章