zabbix通过API接口管理监控服务(三十)

网友投稿 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

zabbix通过API接口管理监控服务(三十)

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小时内删除侵权内容。

上一篇:OpenCV使用之-----BruteForceMatcher报错“无法识别的标识符”
下一篇:【技术方案分享】华为云OBS&RDS开发实战-java版(上篇)
相关文章