1. 用户名密码认证
获取一个token
[root@linux-node1 ~]# python zabbix_auth.py #使用python脚本获取认证token
9a87a7c22e9d0cde869805d0bacc6bf0
[root@linux-node1 ~]# cat zabbix_auth.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import requests
import json
url = 'http://192.168.56.11/zabbix/api_jsonrpc.php' #Zabbix对外接口
post_data = {
"jsonrpc": "2.0",
"method": "user.login", #调用方法
"params": { #认证参数
"user": "Admin",
"password": "zabbix"
},
"id": 1
}
post_header = {'Content-Type': 'application/json'}
ret = requests.post(url, data=json.dumps(post_data), headers=post_header)
zabbix_ret = json.loads(ret.text)
if not zabbix_ret.has_key('result'):
print 'login error'
else:
print zabbix_ret.get('result')
2. 使用API添加主机
查看模版和组id ==> templateid=10110&groupid=9
发送POST请求
[root@linux-node1 ~]# curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.create", #调用接口方法
"params": {
"host": "LINUX-API", #监控主机名定义
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "192.168.56.12", #IP地址
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "9" #组ID
}
],
"templates": [
{
"templateid": "10110" #链接模版ID,可以按需求链接多个
}
]
},
"auth": "9a87a7c22e9d0cde869805d0bacc6bf0", #认证token
"id": 1
}' http://192.168.56.11/zabbix/api_jsonrpc.php | python -m json.tool
#############API返回的结果===============================
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"hostids": [
"10116"
]
}
}
● 可以看到使用API添加主机非常灵活,更多方法可参考下面链接的官网说明,赶快使用吧!
参考: