一、Zabbix API简介
Zabbix API在1.8版本中开始引进并且已经被广泛应用。
Zabbix API 中间件使得架构更加模块化也避免直接对数据库进行操作。允许通过JSON RPC协议来创建、更新和获取Zabbix对象并且做任何操作。
Zabbix API提供两项主要功能:
- 远程管理Zabbix配置
- 远程检索配置和历史数据
二、具体部署
注意:停用自动发现、自动注册
1、获得身份验证令牌(user.login
方法)
在可以访问Zabbix内部的任何数据之前,需要登录并获得身份验证令牌。这可以使用user.login
方法来完成。假想以标准ZabBixAdmin用户登录。那么JSON请求将是这样的:
[root@server11 ~]# vim zabbix-api
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin", ##zabbix监控系统的用户名、密码
"password": "zabbix"
},
"id": 1,
"auth": null
}' http://172.25.51.11/zabbix/api_jsonrpc.php | python -m json.tool
[root@server11 ~]# chmod +x zabbix-api
- 执行脚本,获取令牌
2、删除被监控主机(host.delete
方法)
[root@server11 ~]# vim zabbix-api
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.delete",
"params": [
"10256" ##zabbix agent主机的id(被监控主机的id)
],
"id": 1,
"auth": "900b8e1ed292e48c82296626c2e01fb8"
}' http://172.25.51.11/zabbix/api_jsonrpc.php | python -m json.tool
- 执行脚本,删除被监控主机
- 查看被监控主机的id
- 被监控主机已被删除
3、获取监控主机的信息(host.get
方法)
现在,我们有一个有效的用户认证令牌,可以用来访问Zabbix中的数据。例如,让我们使用host.get方法检索所有配置主机的ID、主机名和接口:
[root@server11 ~]# vim zabbix-api
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output":["host"]
},
"id": 1,
"auth": "900b8e1ed292e48c82296626c2e01fb8"
}' http://172.25.51.11/zabbix/api_jsonrpc.php | python -m json.tool
- 执行脚本,获取监控主机信息
4、创建新的被监控主机(host.creat
方法)
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "server12", ##被监控主机的主机名
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "172.25.51.12", ##被监控主机的IP
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "4" ##指定的groupid(Linux Server)
}
],
"templates": [
{
"templateid": "10001" ##指定的templateid(Template OS Linux)
}
],
"inventory_mode": 0,
"inventory": {
"macaddress_a": "01234",
"macaddress_b": "56768"
}
},
"id": 1,
"auth": "900b8e1ed292e48c82296626c2e01fb8"
}' http://172.25.51.11/zabbix/api_jsonrpc.php | python -m json.tool
- 执行脚本,创建新的被监控主机
- 成功创建新的被监控主机
- 查看groupid,主机—>主机群组—>zabbix servers