Zabbix API初步入门
Zabbix API是实现Zabbix自动化监控的主要手段之一,你可以使用Zabbix Agent的自动注册功能,也可以使用网络自动发现功能,但是这些功能各有各的缺点。如果编写脚本对你来说没有压力,我跟建议Zabbix的所有自动化功能全部使用API的方式来完成。
[attach]101[/attach]
1.登录API接口
## 登录认证 curl -s -X POST -H 'Content-Type: application/json' -d ' { "jsonrpc": "2.0", "method": "user.login", "params": { "user": "Admin", "password": "zabbix" }, "id": 1 }' http://192.168.56.11/zabbix/api_jsonrpc.php | python -m json.tool
2.使用Python调用Zabbix API执行完毕,会访问一个Auth Token,需要保留下来,后面的操作中需要使用
#!/usr/bin/env python # -*- coding:utf-8 -*- import requests import json url = 'http://zabbix.unixhot.com/zabbix/api_jsonrpc.php' post_data = { "jsonrpc": "2.0", "method": "user.login", "params": { "user": "api-user", "password": "zabbix" }, "id": 1 } post_header = {'Content-Type: application/json'} ret = requests.post(url, data=json.dumps(post_data), headers=post_header) print ret.text3.显示所有主机:注意替换auth token。
## 显示所有主机
curl -s -X POST -H 'Content-Type: application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": ["host"]
},
"auth": "3593bc5a0a3b62a5b7f8c3a9c3b9f59f",
"id": 1
}' http://192.168.56.11/zabbix/api_jsonrpc.php | python -mjson.tool
查询所有主机组:
## 显示所有主机组 curl -s -X POST -H 'Content-Type: application/json' -d ' { "jsonrpc": "2.0", "method": "hostgroup.get", "params": { "output": "extend" }, "auth": "3593bc5a0a3b62a5b7f8c3a9c3b9f59f", "id": 1 }' http://192.168.56.11/zabbix/api_jsonrpc.php | python -mjson.tool查询所有模板:
## 显示所有模版 curl -s -X POST -H 'Content-Type: application/json' -d ' { "jsonrpc": "2.0", "method": "template.get", "params": { "output": "extend" }, "auth": "3593bc5a0a3b62a5b7f8c3a9c3b9f59f", "id": 1 }' http://192.168.56.11/zabbix/api_jsonrpc.php | python -mjson.tool