江西九江租车公司排行榜
1590
2022-05-30
zabbix api使用
1.zabbix api介绍
我们可以调用api实现二次开发,或者执行一些批量的操作,例如批量创建主机、批量创建监控项
Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:
创建新的应用程序以使用Zabbix;
将Zabbix与第三方软件集成;
自动执行常规任务。
具体看官方文档介绍
2.zabbix使用api登陆令牌认证
登陆zabbix令牌 [root@192_168_81_160 ~]# curl -X POST -H 'Content-Type: application/json' -d ' { "jsonrpc": "2.0", "method": "user.login", "params": { "user": "Admin", "password": "zabbix" }, "id": 1, "auth": null }' http://192.168.81.250/zabbix/api_jsonrpc.php 执行出现这个表示成功 {"jsonrpc":"2.0","result":"a0ee3094c8577a376faec27d0a548d70","id":1} 我们将令牌值做成变量,这样就能避免每次都要输入了 [root@192_168_81_160 ~]# token=a0ee3094c8577a376faec27d0a548d70
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
3.获取主机群组id以及模板id
主机群组id和模板id都存放于数据库中,我们只需要知道在那张表即可
3.1.获取主机群组id
主机群组id位于hstgrp表,可以看到我们的主机群组centos7的id为15
3.2.获取监控模板id
监控模板id位于hosts_templates,只能说可以在这里取到,我们只需要将一台主机添加一个模板,然后去hosts表找到我们添加的主机,然后在复制hostid去hosts_templates这个表即可拿到我们添加的模板id
我们可以写个SQL去查询
SELECT h.hostid, t.templateid FROM `hosts` h LEFT JOIN hosts_templates t ON h.hostid = t.hostid WHERE h.HOST = '192.168.81.170'
1
2
3
4
5
6
7
8
4.API简单使用
api用到的json都可以从官网拿到
https://www.zabbix.com/documentation/4.0/zh/manual/api/reference
1
4.1.创建一台主机
需要实现安装好agent,并配置好启动
执行api
创建主机 curl -X POST -H 'Content-Type: application/json' -d ' { "jsonrpc": "2.0", "method": "host.create", "params": { "host": "192.168.81.160", "interfaces": [ { "type": 1, "main": 1, "useip": 1, "ip": "192.168.81.160", "dns": "", "port": "10050" } ], "groups": [ { "groupid": "15" } ], "templates": [ { "templateid": "10271" } ] }, "auth": "'$token'", "id": 1 }' http://192.168.81.250/zabbix/api_jsonrpc.php 执行完出现这个表示成功 {"jsonrpc":"2.0","result":{"hostids":["10279"]},"id":1}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
字段解释:
解释:
“host”: “192.168.81.160”, #主机名称
“interfaces”: [
{undefined
“type”: 1, #使用agent客户端
“main”: 1, #默认
“useip”: 1, #ip地址
“ip”: “192.168.81.160”, #agent的地址
“dns”: “”,
“port”: “10050” #agent端口
}
],
“groups”: [
{undefined
“groupid”: “15” #主机群组的id
}
],
“templates”: [
{
“templateid”: “10271” #模板id
}
]
添加成功,且监控成功
4.2.删除多台主机
我们将192.168.81.180/190这两台机器给删掉
获取主机hostid 在zabbix库中执行 SELECT h.hostid, t.templateid FROM `hosts` h LEFT JOIN hosts_templates t ON h.hostid = t.hostid WHERE h.HOST = '192.168.81.180' or h.HOST = '192.168.81.190'
1
2
3
4
5
6
7
8
9
10
删除主机 [root@192_168_81_160 ~]# curl -X POST -H 'Content-Type: application/json' -d ' { "jsonrpc": "2.0", "method": "host.delete", "params": [ "10281", "10280" ], "auth": "'$token'", "id": 1 }' http://192.168.81.250/zabbix/api_jsonrpc.php 输出这个表示成功 {"jsonrpc":"2.0","result":{"hostids":["10281","10280"]},"id":1}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
删除成功
4.3.创建用户
添加用户 [root@192_168_81_160 ~]# curl -X POST -H 'Content-Type: application/json' -d ' { "jsonrpc": "2.0", "method": "user.create", "params": { "alias": "jiangxl", "passwd": "123", "usrgrps": [ { "usrgrpid": "7" } ], "user_medias": [ { "mediatypeid": "1", "sendto": [ "jiangxl@qq.com" ], "active": 0, "severity": 63, "period": "1-7,00:00-24:00" } ] }, "auth": "'$token'", "id": 1 }' http://192.168.81.250/zabbix/api_jsonrpc.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
必要字段说明
“alias”: “jiangxl”, 名称
“passwd”: “123”, 密码
“usrgrpid”: “7” 用户组id
active": 0 是否有效
API Zabbix
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。