获取zabbix监控服务器版本号

需求说明


编写一个python脚本,实现以下功能:

1.安装zabbix服务器

可以查询官方文档,如何安装部署zabbix服务器


2.获取zabbix api的url

设置前端后,你就可以使用远程HTTP请求来调用API。为此,需要向api_jsonrpc.php位于前端目录中的文件发送HTTP POST请求。如果你的Zabbix前端安装在http://192.168.1.10/zabbix,那么用HTTP请求来调用apiinfo.version方法就如下面这样:

POST192.168.1.10/zabbix/api_jsonrpc.phpHTTP/1.1


3.编写python程序,访问zabbix api,取得zabbix版本号


查询官方文档中获取Zabbix API 版本,官方文档的地址如下:

https://www.zabbix.com/documentation/3.4/zh/manual/api/reference/apiinfo/version

将官方文档中的内容进行复制,以便在脚本中直接使用

获取 API 版本

获取 Zabbix API 版本.

请求:

{

    "jsonrpc": "2.0",

    "method": "apiinfo.version",

    "params": [],

    "id": 1

}

响应:

{

    "jsonrpc": "2.0",

    "result": "2.4.0",

    "id": 1

}


源代码


import requests

#python中的dict类型要转换json格式的数据需要用到json库

import json

#要访问的地址

url='http://192.168.1.10/api_jsonrpc.php'

#请求头部信息

headers={'Content-Type':'application/json-rpc'}

#data是从官方文档处获得的

data={

    #jsonrpc协议的版本号,固定的

    "jsonrpc":"2.0",

    #在zabbix手册上查到的,查询zabbix版本

    "method":"qpiinfo.verson",

    #没有额外参数

    "params":[],

    #随便写个数字

    "id":1

}

#使用requests发送请求,访问指定网站,向url发送data请求,r收到的返回响应为json格式

#将data转成json格式,zabbix要求提交的数据是json格式

r=requests.post(url,headers=headers,data=json.dumps(data))

#将json格式解码,zabbix返回的数据都是json格式

print(r.json())


代码结果测试

python3 zabbix_verson.py

{'jsonrpc': '2.0', 'error': {'code': -32602, 'message': 'Invalid params.', 'data': 'Incorrect API "qpiinfo".'}, 'id': 1}

你可能感兴趣的:(获取zabbix监控服务器版本号)