python3批量增加zabbix主机监控项

前端时间在工作中需要配置zabbix,配置起来特别的麻烦。当时想用ZABBIX API来搞,但是一直没时间,最近有时间来研究研究,并记下笔记,以便复用!

在python3爬虫中,我喜欢用request 模块,所以这里也用request来弄!

首先贴上zabbix官网和中文官网的地址:

https://www.zabbix.com/documentation/3.4/manual/api/reference/item/object

https://www.zabbix.com/documentation/3.4/zh/manual/api 任何时候任何难题在官网上几乎都能找到答案,只是花费的时间多少问题了。

首先,我们想用利用zabbix的restful api来访问zabbix,肯定是需要登陆认证的。在zabbix的后续操作中,必须要有一个TOKEN,这也是官方介绍的:官方上实现的方法如下

{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin",
        "password": "zabbix"
    },
    "id": 1,
    "auth": null
}
  • jsonrpc - API使用的JSON-RPC协议的版本; Zabbix API实现JSON-RPC版本2.0; (必须的)

  • method - 调用的API方法;

  • params - 将被传递给API方法的参数;

  • id - 请求的任意标识符; 这个的id需要特别理解下,我之前一直不是很理解。这里的id其实就是一个标志,设置多少无所谓,主要是做返回标志用,也就是这里设置多少,返回数据也会有一个相同的ID 用来标志这个返回对应那个请求!

  • auth -用户认证令牌; 因为我们还没有一个,它的设置null。

    了解了之后我们构造一个请求函数----目的是获取token

    def __init__():
        self.url = 'http://192.168.230.164/zabbix/api_jsonrpc.php'
        self.headers = {'Content-Type': 'application/json'}
        auth = {
            "jsonrpc": "2.0",
            "method": "user.login",
            "params": {
                "user": "Admin", ###验证
                "password":"zfno11"
            },
            "id": 1,
            "auth":None,
        }
        response = requests.post(self.url, data=json.dumps(auth), headers=self.headers)
        authid = json.loads(response.text)['result']  ### auth的id  也就是token

OK 我们已经获取了TOKEN 了接下来就可以为所欲为了!

第二步我们获取所有主机list信息(其实也可以去数据库里面取–但是如果去数据库里面取 还得写数据库函数 输入账号密码等等等。。。。)这里我们假设第一步获取的ID(T

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值