运维监控系统——使用API在zabbix监控系统中查看,创建及删除监控主机

本文介绍了如何利用API在Zabbix监控系统中查看、创建和删除监控主机。首先,阐述了API的基本概念和工作流程。接着,通过编写脚本并执行,展示了查看Zabbix接口、获取主机信息以及删除主机的步骤。最后,详细说明了添加新主机的过程,包括获取必要的groupid和templateid。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

API之主要目的是提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。提供API所定义的功能的软件称作此API的实现。API是一种接口,故而是一种抽象。

应用程序接口(Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。

API的大致工作流如下:

  • (1)API 采用JSON-RPC实现。这意味着调用任何函数,都需要发送POST请求,输入输出数据都是以JSON格式

  • (2)准备JSON对象,它描述了你想要做什么(创建主机,获取图像,更新监控项等)

  • (3)获取JSON格式响应

1.编写脚本,查看zabbix监控系统的接口

(1)编写脚本

[root@server1 ~]# vim zabbix-api
curl -s -XPOST -H "Content-Type: application/json-rpc" -d '
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin",
        "password": "zabbix"
    },
    "id": 1,
    "auth": null
}' http://172.25.6.1/zabbix/api_jsonrpc.php

在这里插入图片描述

(2)给脚本加可执行权限

[root@server1 ~]# chmod +x zabbix-api 
[root@server1 ~]# ll zabbix-api 
-rwxr-xr-x 1 root root 263 Jun 15 16:40 zabbix-api

在这里插入图片描述

(3)执行脚本

[root@server1 ~]# ./zabbix-api
{"jsonrpc":"2.0","result":"dd2d65b7c821dce2ffb8afddc7748fbc","id":1}[root@server1 ~]#   ##这种格式的不方便查看

在这里插入图片描述
(4)添加json模块,以json的方式输出

在这里插入图片描述

(5)再次执行脚本后,result后的字符改变(这是身份令牌),后边会用到,随便选一个即可(第一次执行后生成的令牌也行)
在这里插入图片描述

2.获取zabbix主机和被监控的主机信息

[root@server1 ~]# vim zabbix-api
curl -s -XPOST -H "Content-Type: application/json-rpc" -d '
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": [
            "hostid",
            "host"
        ],
        "selectInterfaces": [
            "interfaceid",
            "ip"
        ]
    },
    "id": 1,
    "auth": "ed47e36be32f48daed48b675bca83220"
}' http://172.25.6.1/zabbix/api_jsonrpc.php | python -m json.tool

在这里插入图片描述
执行脚本。结果如下

[root@server1 ~]# ./zabbix-api 
{
    "id": 1,
    "jsonrpc": "2.0",
    "result": [
        {
            "host": "Zabbix server",
            "hostid": "10084",
            "interfaces": [
                {
                    "interfaceid": "1",
                    "ip": "127.0.0.1"
                }
            ]
        },
        {
            "host": "server2",
            "hostid": "10264",						##后面我们将在脚本中用hostid对监控主机进行删除等操作
            "interfaces": [
                {
                    "interfaceid": "3",
                    "ip": "172.25.6.2"
                }
            ]
        },
        {
            "host": "server3",
            "hostid": "10265",
            "interfaces": [
                {
                    "interfaceid": "4",
                    "ip": "172.25.6.3"
                }
            ]
        }
    ]
}

3.删除zabbix监控中的主机

删除之前在监控系统中关闭自动注册和自动发现动作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

此时监控群组中共三个主机
在这里插入图片描述

编写删除命令的脚本

[root@server1 ~]# vim zabbix-api
curl -s -XPOST -H "Content-Type: application/json-rpc" -d '
{
    "jsonrpc": "2.0",
    "method": "host.delete",			##删除
    "params": [
        "10264"				##server2的hostid
    ],
    "id": 1,
    "auth": "ed47e36be32f48daed48b675bca83220"
}' http://172.25.6.1/zabbix/api_jsonrpc.php | python -m json.tool

执行结果如下
在这里插入图片描述

浏览器监控系统中查看到server2被删除

在这里插入图片描述

4.添加主机

(1)在浏览器的监控系统中获知groupid和templateid(因为要往脚本中写入),方法如下

  • groupid
    【配置】—>【主机模板】–>点击【Linux servers】–>可以在地址栏中URL末尾看到groupid
    在这里插入图片描述

  • templateid
    【配置】 —> 【模板】----> 找到【Template OS Linux】 -->可以在地址栏中URL末尾看到templateid
    在这里插入图片描述

(2)写脚本

[root@server1 ~]# vim zabbix-api
curl -s -XPOST -H "Content-Type: application/json-rpc" -d '
{
    "jsonrpc": "2.0",
    "method": "host.create",
    "params": {
        "host": "server2",
        "interfaces": [
            {
                "type": 1,
                "main": 1,
                "useip": 1,
                "ip": "172.25.6.2",
                "dns": "",
                "port": "10050"
            }   
        ],  
        "groups": [
            {
                "groupid": "2"
            }   
        ],  
        "templates": [
            {
                "templateid": "10001"
            }
        ]
    },
    "id": 1,
    "auth": "ed47e36be32f48daed48b675bca83220"
}' http://172.25.6.1/zabbix/api_jsonrpc.php | python -m json.tool

执行脚本
在这里插入图片描述
可以在浏览器中查看到server2添加进去了,刷新过一会可以看到server2的ZBX变成绿色
在这里插入图片描述

### Zabbix 监控系统使用教程 #### 安装 Zabbix 组件 Zabbix 是一种企业级的开源监控解决方案,能够提供对网络、服务器、虚拟机以及云服务的实时监控。为了开始使用 Zabbix 进行监控,首先需要安装必要的组件。 对于希望被监控的目标机器来说,需部署 zabbix-agent[^1]。该代理程序会定期采集所在主机的各项性能参数并上报至中央管理节点即 Zabbix Server。这使得管理员可以远程获取目标设备的状态信息而不必直接访问每台物理或虚拟计算机。 #### 配置 Zabbix Agent 完成软件包的安装之后,应当编辑位于 `/etc/zabbix/zabbix_agentd.conf` 的配置文件来设置合适的选项以适应具体的环境需求[^3]。例如指定监听地址、更新间隔时间以及其他特定于业务逻辑的数据收集规则等。 #### 主动与被动模式的选择 Zabbix 支持两种工作方式——主动和被动模式: - **被动模式**下,server 发起请求向 agent 获取最新数据; - **主动模式**则是由 agent 自主地按照设定的时间周期把监测结果提交给 server[^2]。 这两种方法各有优劣,在实际应用中可根据实际情况灵活选用。 #### 日志审查 当遇到问题时,可以通过查看日志文件来进行故障排查。比如在服务端通过命令 `tail -f /var/log/zabbix/zabbix_proxy.log` 实时跟踪代理的日志输出有助于快速定位错误原因[^4]。 ```bash # 查看zabbix proxy日志 tail -f /var/log/zabbix/zabbix_proxy.log ``` #### 扩展功能开发 随着运维规模的增长和技术架构复杂度增加,可能还需要进一步定制化现有的监控体系。这时就可以利用官方提供的 API 接口编写自动化脚本来简化日常管理工作流程;或是集成 Grafana 等第三方工具制作更加直观易懂的数据可视化图表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值