使用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.19.1/zabbix/api_jsonrpc.php

在这里插入图片描述
(2)给脚本加可执行权限

[root@server1 ~]# chmod +x zabbix-api 
[root@server1 ~]# ll zabbix-api 
-rwxr-xr-x 1 root root 264 May 12 09:39 zabbix-api

在这里插入图片描述
(3)执行脚本,这种格式的不方便查看

[root@server1 ~]# ./zabbix-api 
{"jsonrpc":"2.0","result":"b65c94e07a2eb01f6a3b990aa1fbe591","id":1}

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

}' http://172.25.19.1/zabbix/api_jsonrpc.php | python -m json.tool

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

[root@server1 ~]# vim zabbix-api
[root@server1 ~]# ./zabbix-api 
{
    "id": 1,
    "jsonrpc": "2.0",
    "result": "6645f1c3d92b03ab565dfc9c9c934e58"
}

在这里插入图片描述
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": "6645f1c3d92b03ab565dfc9c9c934e58"   ##这里就是上一步执行脚本生成的身份令牌
}' http://172.25.19.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": "10267",
            "interfaces": [
                {
                    "interfaceid": "6",
                    "ip": "172.25.19.2"
                }
            ]
        },
        {
            "host": "server3",
            "hostid": "10268",
            "interfaces": [
                {
                    "interfaceid": "7",
                    "ip": "172.25.19.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": [
        "10268"
    ],
    "id": 1,
    "auth": "6645f1c3d92b03ab565dfc9c9c934e58"
}' http://172.25.19.1/zabbix/api_jsonrpc.php | python -m json.tool

在这里插入图片描述
执行脚本如下:

[root@server1 ~]# ./zabbix-api 
{
    "id": 1,
    "jsonrpc": "2.0",
    "result": {
        "hostids": [
            "10268"
        ]
    }
}
[root@server1 ~]# 

在这里插入图片描述
浏览器中查看到server3被删除
在这里插入图片描述

4.添加主机

[root@server1 ~]# vim zabbix-api

curl -s -XPOST -H "Content-Type: application/json-rpc" -d '
{
    "jsonrpc": "2.0",
    "method": "host.create",
    "params": {
        "host": "server3",
        "interfaces": [
            {
                "type": 1,
                "main": 1,
                "useip": 1,
                "ip": "172.25.19.3",
                "dns": "",
                "port": "10050"
            }   
        ],  
        "groups": [
            {
                "groupid": "2"
            }   
        ],  
        "templates": [
            {
                "templateid": "10001"
            }
        ]
    },
    "id": 1,
    "auth": "6645f1c3d92b03ab565dfc9c9c934e58"
}' http://172.25.19.1/zabbix/api_jsonrpc.php | python -m json.tool

执行脚本

[root@server1 ~]# ./zabbix-api 
{
    "id": 1,
    "jsonrpc": "2.0",
    "result": {
        "hostids": [
            "10269"
        ]
    }
}

在这里插入图片描述
可以在浏览器中查看到server3添加进去了,过一会舒心可以看到server3的ZBX变成绿色
在这里插入图片描述
注意:在浏览器中查看groupid和templateid的方法:

  • groupid
    配置—>主机模板–>点击Linux servers–>可以看到上边有groupid
    在这里插入图片描述
    在这里插入图片描述
  • templateid
    配置 —> 模板----> 找到Template OS Linux -->可以看到templateid
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值