Zabbix通过API管理监控主机

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Hannah_zh/article/details/83866720

一、Zabbix API简介

Zabbix API在1.8版本中开始引进并且已经被广泛应用。
Zabbix API 中间件使得架构更加模块化也避免直接对数据库进行操作。允许通过JSON RPC协议来创建、更新和获取Zabbix对象并且做任何操作。
Zabbix API提供两项主要功能:

  • 远程管理Zabbix配置
  • 远程检索配置和历史数据

二、具体部署

注意:停用自动发现、自动注册

在这里插入图片描述

1、获得身份验证令牌(user.login方法)

在可以访问Zabbix内部的任何数据之前,需要登录并获得身份验证令牌。这可以使用user.login方法来完成。假想以标准ZabBixAdmin用户登录。那么JSON请求将是这样的:

[root@server11 ~]# vim zabbix-api
curl  -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin",               ##zabbix监控系统的用户名、密码
        "password": "zabbix"
    },
    "id": 1,
    "auth": null
}' http://172.25.51.11/zabbix/api_jsonrpc.php | python -m json.tool
[root@server11 ~]# chmod +x zabbix-api 
  • 执行脚本,获取令牌
    在这里插入图片描述

2、删除被监控主机(host.delete方法)

[root@server11 ~]# vim zabbix-api
curl  -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.delete",
    "params": [
        "10256"     ##zabbix agent主机的id(被监控主机的id)
    ],
    "id": 1,
    "auth": "900b8e1ed292e48c82296626c2e01fb8"
}' http://172.25.51.11/zabbix/api_jsonrpc.php | python -m json.tool
  • 执行脚本,删除被监控主机
    在这里插入图片描述
  • 查看被监控主机的id
    在这里插入图片描述
  • 被监控主机已被删除
    在这里插入图片描述

3、获取监控主机的信息(host.get方法)

现在,我们有一个有效的用户认证令牌,可以用来访问Zabbix中的数据。例如,让我们使用host.get方法检索所有配置主机的ID、主机名和接口:

[root@server11 ~]# vim zabbix-api
curl  -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output":["host"]
    },
    "id": 1,
    "auth": "900b8e1ed292e48c82296626c2e01fb8"
}' http://172.25.51.11/zabbix/api_jsonrpc.php | python -m json.tool
  • 执行脚本,获取监控主机信息
    在这里插入图片描述

4、创建新的被监控主机(host.creat方法)

curl  -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.create",
    "params": {
        "host": "server12",                 ##被监控主机的主机名
        "interfaces": [
          {
                "type": 1,
                "main": 1,
                "useip": 1,
                "ip": "172.25.51.12",       ##被监控主机的IP
                "dns": "",
                "port": "10050"
            }
        ],
        "groups": [
            {
                "groupid": "4"              ##指定的groupid(Linux Server)
            }
         ],
        "templates": [
            {
                "templateid": "10001"       ##指定的templateid(Template OS Linux)
            }
        ],
        "inventory_mode": 0,
        "inventory": {
            "macaddress_a": "01234",
            "macaddress_b": "56768"
        }
},
    "id": 1,
    "auth": "900b8e1ed292e48c82296626c2e01fb8"
}' http://172.25.51.11/zabbix/api_jsonrpc.php | python -m json.tool
  • 执行脚本,创建新的被监控主机
    在这里插入图片描述
  • 成功创建新的被监控主机
    在这里插入图片描述
  • 查看groupid,主机—>主机群组—>zabbix servers
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Hannah_zh/article/details/83866720