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

举报
jiangxl 发表于 2022/04/14 00:17:19 2022/04/14
【摘要】 zabbix api使用 1.zabbix api介绍 我们可以调用api实现二次开发,或者执行一些批量的操作,例如批量创建主机、批量创建监控项 Zabbix API允许你以编程方式检索和修改Zab...

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.删除多台主机

4.2.1.获取主机hostid

我们将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

在这里插入图片描述

4.2.2.删除主机

删除主机
[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 是否有效

在这里插入图片描述

文章来源: jiangxl.blog.csdn.net,作者:Jiangxl~,版权归原作者所有,如需转载,请联系作者。

原文链接:jiangxl.blog.csdn.net/article/details/115999292

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。