zabbix-api系列1 说明书

发布时间:2022-06-28 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了zabbix-api系列1 说明书脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

目录
  • 一.说明
  • 二.认证基本函数

一.说明

zabbix的api可以查看API中文手册,API的参数等等一直都是变化不大,5.0版本的zabbix用3.4的API也可以直接使用。 调用的时候用requests来往zabbix的api的url里传入json字符串,在正常使用前先传入账号密码用user.login参数来登陆zabbix,成功后会返回一个token的值(可以print来看看),后续的操作直接填入这个token的变量即可。

二.认证基本函数

#/use/bin/python3
import json, requests

#zabbix服务器的IP地址
zabbix_ip = "172.16.1.1"

#zabbix的用户名
zabbix_user = "Admin"

#zabbix的密码
zabbix_pass = "zabbix"

#zabbix api接口地址
url = "http://" + zabbix_ip + ":8000/api_jsonrpc.php"

#zabbix api定义的访问头部信息
post_header = {'Content-Type': 'application/json'}


#调用zabbix api需要身份令牌auth
def get_auth():
    post_data = {
        "jsonrpc": "2.0",
        "method": "user.login",
        "params": {
            "user": zabbix_user,
            "password": zabbix_pass
        },
        "id": "1"
    }
    ret = requests.post(url, data=json.dumps(post_data), headers=post_header)
    zabbix_ret = json.loads(ret.text)
    if 'result' not in zabbix_ret:
        print('login error')
    else:
        return zabbix_ret.get('result')

#传入zabbix上主机的ip地址,返回主机的id号
def get_hostid(host_ip):
    values = {
        "jsonrpc": "2.0",
        "method": "host.get", #指定方法
        "params": { #参数列表
            "output": "extend", #返回默认信息,这里可以加别的参数指定返回
            "filter": { #根据ip查询
                "host": [host_ip]
            }
        },
        "auth": auth, #token
        "id": 2, #id号随意写数字
    }
    #用post提交json字段,然后解析成字典输出
    zabbix_req = requests.post(url, data=json.dumps(values), headers=post_header)
    zabbix_req = zabbix_req.json()
    print(zabbix_req)


if __name__ == '__main__':
    auth =  get_auth() #先传入token字符串到这个变量,后续调用变量即可
    get_hostid("172.16.1.2") #调用后续的比如查id,添加监控项

脚本宝典总结

以上是脚本宝典为你收集整理的zabbix-api系列1 说明书全部内容,希望文章能够帮你解决zabbix-api系列1 说明书所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: