文章目录
Zabbix API简介
-
除了可以在Zabbix中找到的所有功能之外,它还提供了一个API,可以访问Zabbix中几乎所有可用的功能。Zabbix API的存在为提高监视的效率提供了很多机会。
-
Zabbix API开始扮演着越来越重要的角色,尤其是在集成第三方软件和自动化日常任务时。很难想象管理数千台服务器而没有自动化是多么的困难。
-
Zabbix API为批量操作、第三方软件集成以及其他作用提供可编程接口。
-
Zabbix API是在1.8版本中开始引进并且已经被广泛应用。所有的Zabbix移动客户端都是基于API,甚至原生的WEB前端部分也是建立在它之上。Zabbix API 中间件使得架构更加模块化也避免直接对数据库进行操作。它允许你通过
JSON RPC
协议来创建、更新和获取Zabbix对象并且做任何你喜欢的操作【当然前提是你拥有认证账户】。 -
Zabbix API提供两项主要功能:
-
远程管理Zabbix配置
-
远程检索配置和历史数据
参考文档
更多Zabbix API的内容可以查看官网https://www.zabbix.com/cn/zabbix_api
Zabbix API配置
- 在访问Zabbix中的任何数据之前,需要登录并获取身份验证令牌。
测试并获取身份令牌
vim zabbix-api
curl -XPOST -H "Content-Type: application/json-rpc" -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1,
"auth": null
}' http://172.25.0.1/zabbix/api_jsonrpc.php
- 运行脚本
[root@server1 ~]# ./zabbix-api
{"jsonrpc":"2.0","result":"fb1f413d4e85da6459eb21275e243e5e","id":1}
这样显示不好看,加入 python 的 json 模块
vim zabbix-api
curl -s -XPOST -H "Content-Type: application/json-rpc" -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1,
"auth": null
}' http://172.25.0.1/zabbix/api_jsonrpc.php | python -m json.tool
参数属性
jsonrpc - API使用的JSON-RPC协议的版本;
Zabbix API实现的JSON-RPC版本是2.0;
method - 被调用的API方法名;
params - 将被传递给API方法的参数;
id - 请求的任意标识符;
auth -用户认证令牌; 因为我们还没有一个,它的设置null。
- 加入-s参数和json模块
[root@server1 ~]# ./zabbix-api
{
"id": 1,
"jsonrpc": "2.0",
"result&#