• 如何调用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')
    
    • 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
    • 44
    • 45
    • 46
    • 47

    在这里插入图片描述
    以上脚本一共分为两个部分。第一部分是用户登录;第二部分用户登录后获取主机列表,最后写到一个文件中。整个脚本运行的结果是生成一个所有被监控的IP列表,通过这个列表就可以实现跟资产库信息进行对比,从而发现未被监控的主机。
    以上就是这一期的技术分享。
    大家好,我是乐乐,关注我,学习更多Zabbix使用小技巧,如在Zabbix使用过程中碰到问题,还可以到乐维社区进行留言提问。

  • 相关阅读:
    Vue-条件渲染和循环渲染
    Java“牵手”义乌购商品列表页数据采集+义乌购商品价格数据排序,义乌购API接口申请指南
    【设计模式】Java设计模式 - 装饰者模式
    openGauss/MogDB脚本源码浅析(2)—— gs_install_plugin/gs_install_plugin_local
    java线程池
    第二章 C API稳定性
    sam_out 应用到时序分类
    【外设】拓展坞接入外设一直弹窗报错问题
    vue安装步骤
    【学习笔记】LOJ #6240. 仙人掌
  • 原文地址:https://blog.csdn.net/weixin_43631631/article/details/132737994