Zabbix API的应用
zabbix中API的作用
- zabbix拥有完善的API,基于JSON RPC提供资产,主机,主机组,监控项,告警等方面的接口。
在做运维自动化时,需要用API功能对zabbix二次开发。 Zabbix API为批量操作,第三方软件集成以及其他作用提供可编程接口
Zabbix API提供两项主要功能:
- 远程管理Zabbix配置
- 远程检索配置和历史数据
API的工作流程
API采用JSON-RPC实现这意味着调用任何函数,都需要向POST请求,输入输出数据都是以JSON格式
转备JSON对象,它描述了你想要做什么,比如创建主机、获取JSON格式响应
查看zabbix系统监控的API接口以及API脚本方式获取身份令牌(查看监控主机)
curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '
#-s 静默模式,不输出任何东西 #curl默认的HTTP动词是GET,使用`-X`参数可以支持其他动词。 启用curl命令模拟json格式的post请求。
{
"jsonrpc": "2.0", #标准的JSON RPC参数以标示协议版本
"method": "user.login", #获取接口方法名
"params": {
"user": "Admin",
"password": "zabbix" #zabbix系统监控的用户名和密码
},
"id": 1,
"auth": null #用户的身份令牌,因为还没有获取所以为null。
}' http://172.25.2.1/zabbix/api_jsonrpc.php | python -m json.tool #python..将其标准化输出

检索主机
利用刚才获取的身份令牌,访问zabbix中的数据,下面实现host.get方法检索所有已配置主机的ID,主机名及其接口。
curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host"
],
"selectInterfaces": [
"interfaceid",
"ip"
]
},
"id": 1,
"auth": "71d1f10d28a47f8df6d6edb33e462755"
}' http://172.25.254.1/zabbix/api_jsonrpc.php | python -m json.tool



删除监控中的主机
删除正在服务的主机
curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '
{
"jsonrpc": "2.0",
"method": "host.delete",
"params": [
"10306"
],
"id": 1,
"auth": "71d1f10d28a47f8df6d6edb33e462755"
}' http://172.25.254.1/zabbix/api_jsonrpc.php | python -m json.tool

在web界面看到被删除

创建监控主机
模板号(templateid)和组号(groupid)
看web界面的链接
注意关闭 自动注册和自动发现
curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '{
"jsonrpc": "2.0",
"method": "host.create",
"params" : {
"host": "server2",
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "172.25.254.2",
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "2"
}
],
"templates": [
{
"templateid": "10001"
}
]
},
"id": 1,
"auth":"71d1f10d28a47f8df6d6edb33e462755"
}' http://172.25.254.1/zabbix/api_jsonrpc.php | python -m json.tool
Zabbix API提供远程管理配置和检索数据的功能,适用于运维自动化和第三方软件集成。本文将详细介绍如何通过API获取身份令牌、检索主机、删除及创建监控主机。包括调用API的JSON-RPC工作流程,以及具体的操作示例。
3141

被折叠的 条评论
为什么被折叠?



