Zabbix分布式监控平台部署<2>--自动发现,自动注册,api

一、简介

Zabbix 是一个企业级分布式开源监控解决方案。
Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。

二、部署server端成功后的登录

这是Zabbix的“欢迎”界面。输入用户名 Admin 以及密码 zabbix 以作为 Zabbix超级用户登陆。
登陆后,你将会在页面右下角看到“以管理员连接(Connected as Admin)”。同时会获得访问 配置(Configuration) and 管理(Administration) 菜单的权限。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、新建服务主机及基础部署

1.图形化添加

注意:下述是在web图形化界面中的操作,前提是要部署好zabbix-agent端

Zabbix中的主机(Host)是一个你想要监控的网络实体(物理的,或者虚拟的)。Zabbix中,对于主机的定义非常灵活。它可以时一台物理服务器,一个网络交换机,一个虚拟机或者一些应用。

添加主机:
Zabbix中,可以通过配置(Configuration) → 主机(Hosts)菜单,查看已配置的主机信息。默认已有一个名为’Zabbix server’的预先定义好的主机。但我们需要学习如何添加另一个。
点击创建主机(Create host)以添加新的主机,这将向我们显示一张主机配置表格。

所有必填字端均以红色星标标示。
至少需要填写下列字段:
主机名称(Host name):
输入一个主机名称,可以使用字母数字、空格、点”.“、中划线”-“、下划线”_“。
组:
从右边的选择框中,选择一个或者多个组,然后点击 « 移动它们到’所在组(In groups)'选择框。
注意:所有访问权限都分配到主机组,而不是单独的主机。这也是主机需要属于至少一个组的原因。
IP地址:
输入主机的IP地址。注意如果这是Zabbix server的IP地址,它必须是Zabbix agent配置文件中‘Server’参数的值。
暂时保持其他选项的默认值。
当完成后,点击添加(Add)。你可以在主机列表中看到你新添加的主机。
注意:如果可用性(Availability)列中的ZBX图标是红色的,通信可能存在一些问题。将你的鼠标移动到上面查看错误信息。如果这个图标是灰色的,说明目前状态还没更新。确认Zabbix server正在运行,同时尝试过会儿刷新这个页面。
在这里插入图片描述
在这里插入图片描述

2.链接已有监控模板

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.服务端自动发现客户主机

在实际生产环境中,如果需要逐个添加监控对象,会耗费大量人力物力,这里我们可以使用一种规则来使服务端能够自动发现被监测的对象

启用动作,选自动发现,打开自动发现的规则,更改ip段为已部署好的客户主机的ip范围,在检测处就可以看到,有默认的动作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.客户端自动注册

服务端自动发现的规则仍不是最优选择,客户端自动注册为监控对象将更加节省人力
操作步骤:
1、关闭自动发现,启用动作,选择自动注册,创建该动作,加的主机名为server,将主机群组和连接模板添加进去
2、重启客户端的systemctl restart zabbix-agent.service ,等待一段时间就可以在图形化界面中发现该客户主机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、api

Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:
创建新的应用程序以使用Zabbix;
将Zabbix与第三方软件集成;
自动执行常规任务。
大多数API至少包含四种方法: get,create,update 和 delete,分别是检索,创建,更新和删除数据,但是某些API提供一套完全不同的一组方法。

1.用户登录,主机检索

用户登录:
在访问Zabbix中的任何数据之前,你需要登录并获取身份验证令牌。这可以使用该 user.login 方法完成。假设你想要以标准Zabbix Admin用户身份登录:
[root@server1 ~]# cat zabbix.api
curl -s -XPOST http://172.25.0.1/zabbix/api_jsonrpc.php -H “Content-Type: application/json-rpc” -d’
{
    
    
“jsonrpc”:2.0,
“method”: “user.login”,
“params”: {
    
    
“user”: “Admin”,
“password”: “zabbix”
},
“id”: 1,
“auth”: null
}|python -m json.tool

[root@server1 ~]# sh zabbix.api           %下面为API返回的响应
{
    
    
“id”: 1,                              %相应请求的标识符
“jsonrpc”:2.0,                        % JSON-RPC协议的版本
“result”:870c5a59cdf9845e03dd9208c4ec6455”     %用户身份验证令牌
}

检索主机:
我们现在有一个有效的用户身份验证令牌,可以用来访问Zabbix中的数据。 例如,让我们使用 host.get 方法检索所有已配置主机的ID,主机名和接口 :
{
    
    
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
    
    
        "output": [
            "hostid",
            "host"
        ],
        "selectInterfaces": [
            "interfaceid",
            "ip"
        ]
    },
    "id": 2,
    "auth": "870c5a59cdf9845e03dd9208c4ec6455"   %auth属性现在设置为我们通过调用user.login方法获得的身份验证令牌
}

2.创建主机

[root@server1 ~]# cat 1.api
curl -s -XPOST http://172.25.10.1/zabbix/api_jsonrpc.php -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.0.3",
                "dns": "",
                "port": "10050"
            }
        ],
        "groups": [
            {
    
    
                "groupid": "2"    %linux servers组的id
            }
        ],
        "templates": [
            {
    
    
                "templateid": "10001"
            }
        ],
    },
    "auth": "870c5a59cdf9845e03dd9208c4ec6455",
    "id": 1
}
}|python -m json.tool

响应:
{
    
    
    "id": 1,
    "jsonrpc": "2.0",
    "result": {
    
    
        "hostids": [
            "10274"
        ]
    },
    "id": 1
}

在这里插入图片描述

3.删除主机

[root@server1 ~]# cat 2.api
curl -s -XPOST http://172.25.10.1/zabbix/api_jsonrpc.php -H “Content-Type: application/json-rpc” -d’
{
    
    
    "jsonrpc": "2.0",
    "method": "host.delete",
    "params": [
        "xxxxx"    %在zabbix图形化监控界面点击所要删除的主机,就可以看到其id
    ],
    "auth": "870c5a59cdf9845e03dd9208c4ec6455",
    "id": 1
}
}|python -m json.tool

响应:
{
    
    
    "jsonrpc": "2.0",
    "result": {
    
    
        "hostids": [
            "xxxxx"
        ]
    },
    "id": 1
}

猜你喜欢

转载自blog.csdn.net/nk298120/article/details/115348466