文章目录
zabbix-API介绍
官网
https://www.zabbix.com/documentation/5.0/zh/manual/api
Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:
创建新的应用程序以使用Zabbix;
将Zabbix与第三方软件集成;
自动执行常规任务。
Zabbix API是基于Web的API,作为Web前端的一部分提供。它使用JSON-RPC 2.0协议,这意味着两点:
该API包含一组独立的方法;
客户端和API之间的请求和响应使用JSON格式进行编码。
Zabbix API由许多名义上分组的独立API方法组成。每个方法执行一个特定任务。例如,方法 host.create 隶属于 host 这个API分组 ,用于创建新主机。历史上,API分组有时被称为“类”
API 使用:
执行请求
当完成了前端的安装配置后,你就可以使用远程HTTP请求来调用API。为此,需要向位于前端目录中的 api_jsonrpc.php 文件发送HTTP POST请求
。例如,如果你的Zabbix前端安装在 http://company.com/zabbix
, 那么用HTTP请求来调用 apiinfo.version 方法就如下面这样
POST http://company.com/zabbix/api_jsonrpc.php HTTP/1.1
Content-Type: application/json-rpc
{
"jsonrpc":"2.0","method":"apiinfo.version","id":1,"auth":null,"params":{
}}
1.获取token:为了后面的操作
需要指定用的账户名 密码和id
可以在任何一台zabbix中测试
最后的http为zabbix-server的地址
-s静默
-X操作方法
-H操作信息
[root@mysql zabbix_agentd.d]# 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.66.101/zabbix/api_jsonrpc.php | python -m json.tool
#返回数据
{
"id": 1,
"jsonrpc": "2.0",
"result": "855099d7d4adf1bdb8ba0c1e1a632e44"
}
1.2 获取单个主机信息
这里的auth就是上一步获取的token值result
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"filter": {
"host": [
"192.168.66.102" #指明那个主机
]
}
}