Zabbix API开始扮演着越来越重要的角色,尤其是在集成第三方软件和自动化日常任务时。很难想象管理数千台服务器而没有自动化是多么的困难。Zabbix API为批量操作、第三方软件集成以及其他作用提供可编程接口。
Zabbix API提供两项主要功能:
- 远程管理Zabbix配置
- 远程检索配置和历史数据
使用JSON API 采用JSON-RPC实现。这意味着调用任何函数,都需要发送POST请求,输入输出数据都是以JSON格式。大致工作流如下:
- 1.在官网查询JSON操作对象
- 2.登录获取Token
- 3.创建主机,获取图像,更新监控项等
可以采用脚本或者任何"手动"支持JSON RPC的工具来使用API。而首先需要了解的就是如何验证和如何使用验证ID来获取想要的信息。后面的演示会以Python脚本呈现API的基本使用。
login.py
#!/usr/bin/env python
import urllib2
import json
#定义URL账户密码
url = 'http://ZabbixIP/zabbix/api_jsonrpc.php'
username = '*****'
password = '*****'
#定义通过HTTP方式访问API地址的函数,后面每次请求API的各个方法都会调用这个函数
def requestJson(url,values):
data = json.dumps(values)
req = urllib2.Request(url, data, {'Content-Type': 'application/json-rpc'})
response = urllib2.urlopen(req, data)
output = json.loads(response.read())
try:
message = output['result']
except:
message = output['error']['data']
print message
quit()
return output['result']
#API接口认证的函数,登录成功会返回一个Token
def authenticate(url, username, password):
values = {'jsonrpc': '2.0',
'method': 'user.login',
'params': {
'user': username,
'password': password
},
'id': '0'
}
idvalue = requestJson(url,values)
return idvalue
#调用函数
if __name__ == '__main__':
auth = authenticate(url, username, password)
print auth
- 执行python脚本
#如果成功输出一个Token
612508116ead2176a9932c4b2818c186
#如果失败提示账号或密码不正确
Login name or password is incorrect.
网友评论