ZABBIX API:高效监控的利器

2dad85aa14a7b7b061dd36a25f7d6025.gif

新钛云服已累计为您分享794篇技术干货

e8fa8dd9e77ff713328798253ca16570.gif

ZABBIX是一款广受欢迎的高效监控工具,它提供了一系列丰富的API接口,使得日常监控任务变得更加便捷。无论是查看信息、添加主机、应用监控模板,还是执行删除操作,ZABBIX API都能助您一臂之力,尤其在进行大规模监控部署时,其快速、准确的特点尤为突出。

01

准备工作:ZABBIX API调用

本文将展示如何使用Python语言,结合HTTP客户端库,通过发送HTTP请求来实现ZABBIX API的各种功能。

首先,要访问Zabbix的数据,您需要登录并获取一个身份认证token。这可以通过使用user.login方法来完成。以下是一个简单的脚本示例:

[root@zbx-server]# vim zbxapi-create-hostgroup.py
# -*- coding:utf-8 -*-
import requests
import json
import sys
url = 'http://x.x.x.x(IP)/api_jsonrpc.php'
post_headers = {'Content-Type': 'application/json'}
post_data = {
  "jsonrpc": "2.0",
  "method": "user.login",
  "params": {
        "user": "Admin",
        "password": "zabbix",      
    },
  "id": 0,
}
response = requests.post(url, headers=post_headers, data=json.dumps(post_data))
print("Response content:", response.text)
执行脚本:
python3  zbxapi-create-hostgroup.py  {hostgroup-name}
返回结果如下:
Response content: {"jsonrpc":"2.0","result":"cfeef2fbe1b680b773e930047448bab2","id":1}

其中result的值就是id: 1对应的身份认证auth的值

1619f67298939546704119e0c096cb7a.png

02

常用API功能及使用方法

01

创建主机群组并获取ID

创建一个新的主机群组,并获取其ID是后续操作的关键步骤。以下是一个Python脚本示例,用于创建群组并打印返回的组ID:

# -*- coding:utf-8 -*-
import requests
import json
import sys
url = 'http://x.x.x.x/api_jsonrpc.php'
post_headers = {'Content-Type': 'application/json'}
post_data = {
  "jsonrpc": "2.0",
    "method": "hostgroup.create",
    "params": {
              "name": sys.argv[1],  
      },
  "id": "1",
    "auth": "xxxxxxxxxxxxxxxxxxxxxx",
}
response = requests.post(url, headers=post_headers, data=json.dumps(post_data))
print("Response status code:", response.status_code)
print("Response content:", response.text)

执行脚本并传入群组名称作为参数,您将得到类似如下的响应:

{"jsonrpc":"2.0","result":"cfeef2fbe1b680b773e930047448bab2","id":1}

其中,result字段的值即为新创建的主机群组ID。

a99bf172539953d15e66cb5c47a3a4aa.png

在zabbix web页面可以看到也是成功创建的主机群组并且groupid也都为21

7aa57af3bfaf8d3c03c3a26307bb9b3d.png

获取主机群组ID这一步是比较关键的,因为后续的创建模板,创建主机等,都需要用到groupid(主机群组ID),当新创建时可以通过API创建获取,个人也是比较喜欢,因为它可以创建的同时一并将ID也返回,如果是查询之前的,则web页面会方便一些,只需要鼠标放在对应位置即可,各有优势。

02

创建监控模板

创建模板是配置监控项和触发器的前提。以下是一个创建模板的脚本示例:

[root@zbx-server]# vim zbxapi-create-template.py
# -*- coding:utf-8 -*-
import requests
import json
import sys
url = 'http://x.x.x.x/api_jsonrpc.php'
post_headers = {'Content-Type': 'application/json'}
post_data = {
  "jsonrpc": "2.0",
  "method": "template.create",
  "params": {
  "host": sys.argv[1],
        "groups": {
            "groupid": sys.argv[2]
        },
},
  "id": "1",
  "auth": "xxxxxxxxxxxxxxxxxxxxxx",
}
response = requests.post(url, headers=post_headers, data=json.dumps(post_data))
print("Response status code:", response.status_code)
print("Response content:", response.text)
执行脚本:
python3  zbxapi-create-template.py  {template-name}   {groupid}

06b8d148945c13cd51acc2f00f031454.png

执行脚本并传入模板名称和所属群组ID,您将能在Zabbix的Web界面中看到新创建的模板。

e93f3d47237c9d04a31d74e1136dcba3.png

03

创建监控主机并加入指定组

创建主机并将其加入到指定的监控群组中,是实现监控的最终步骤。以下是一个创建主机的脚本示例:

vim  zbx-host-create.py
# -*- coding:utf-8 -*-
import requests
import json
import sys
url = 'http://x.x.x.x/api_jsonrpc.php'
post_headers = {'Content-Type': 'application/json'}
post_data = {
"jsonrpc": "2.0",
"method": "host.create",
"params": {
  "host": sys.argv[1],
            "interfaces": [
            {
                "type": 1,
                    "main": 1,
                "useip": 1,
                "ip": sys.argv[2],
                "dns": "",
                    "port": "10050"
            }
            ],
            "groups": [
                {
                "groupid": sys.argv[3],  
                }
            ],
            "templates": [
                {
                    "templateid": sys.argv[4],
                }
            ],
            "inventory_mode": 0,
        "inventory": {
            "macaddress_a": "01234",
            "macaddress_b": "56768"
        }
    },
  "id": 1,
  "auth": "xxxxxxxxxxxxxxxxxxxxxx",
}
response = requests.post(url, headers=post_headers,   data=json.dumps(post_data))
print("Response status code:", response.status_code)
print("Response content:", response.text) 




执行脚本:python3  zbx-host-create.py  {hostname}  {ip}  {groupid}  {templateid}

31647c1eee20914c817fc177224cec53.png

执行脚本并传入主机名、IP地址、群组ID和模板ID,您将成功创建一个新的监控主机,并将其绑定到指定的群组和模板。

d6817636d11a33d7b75d54bb5ae7e542.png

03

总 结

通过ZABBIX API,我们可以高效地完成主机创建等日常监控任务。在面对大量服务器需要监控时,与传统的Web界面操作相比,API提供了一种更加快速和自动化的解决方案。

此外,ZABBIX API还支持删除操作、添加标签、设置主机宏、创建监控大屏等众多功能,极大地提升了我们使用ZABBIX的效率和深度。

对于更详细的操作和功能,您可以参考ZABBIX官方API文档:

ZABBIX API Documentation

如有相关问题,请在文章后面给小编留言,小编安排作者第一时间和您联系,为您答疑解惑。

更多操作功能参考ZABBIX 官方API链接地址:

https://www.zabbix.com/documentation/current/zh/manual/api

    推荐阅读   

fa3426cf56b3c6702f82c3d42321cda1.png

20bdf3c157b1d9a6ccd048715cc1ab64.png

    推荐视频    

  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 内容概要 《计算机试卷1》是一份综合性的计算机基础和应用测试卷,涵盖了计算机硬件、软件、操作系统、网络、多媒体技术等多个领域的知识点。试卷包括单选题和操作应用两大类,单选题部分测试学生对计算机基础知识的掌握,操作应用部分则评估学生对计算机应用软件的实际操作能力。 ### 适用人群 本试卷适用于: - 计算机专业或信息技术相关专业的学生,用于课程学习或考试复习。 - 准备计算机等级考试或职业资格认证的人士,作为实战演练材料。 - 对计算机操作有兴趣的自学者,用于提升个人计算机应用技能。 - 计算机基础教育工作者,作为教学资源或出题参考。 ### 使用场景及目标 1. **学习评估**:作为学校或教育机构对学生计算机基础知识和应用技能的评估工具。 2. **自学测试**:供个人自学者检验自己对计算机知识的掌握程度和操作熟练度。 3. **职业发展**:帮助职场人士通过实际操作练习,提升计算机应用能力,增强工作竞争力。 4. **教学资源**:教师可以用于课堂教学,作为教学内容的补充或学生的课后练习。 5. **竞赛准备**:适合准备计算机相关竞赛的学生,作为强化训练和技能检测的材料。 试卷的目标是通过系统性的题目设计,帮助学生全面复习和巩固计算机基础知识,同时通过实际操作题目,提高学生解决实际问题的能力。通过本试卷的学习与练习,学生将能够更加深入地理解计算机的工作原理,掌握常用软件的使用方法,为未来的学术或职业生涯打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值