3126 字
16 分钟
04-Zabbix-监控对象管理

Zabbix 6.4 分布式企业级性能监控平台#

Zabbix 监控对象管理
官网:https://www.zabbix.com/cn

一、实验环境#

节点角色IP 地址操作系统:硬件规格
rocky-9-16MySQL 数据库(版本:8.0)
加装:Zabbix Agent 客户端代理
192.168.168.16/24Rocky Linux 91 vCPU、2GB 内存
rocky-9-17Nginx + PHP Web 前端
加装:Zabbix Agent 客户端代理
192.168.168.17/24Rocky Linux 91 vCPU、2GB 内存
rocky-9-18Zabbix Server 核心服务(版本:6.4)192.168.168.18/24Rocky Linux 91 vCPU、2GB 内存
rocky-9-19被监控主机
安装:Zabbix Agent 客户端代理
192.168.168.19/24Rocky Linux 91 vCPU、2GB 内存

二、主机群组(Host Groups)#

1. 功能:#

★ <Host Groups 主机群组>是:一个对<主机对象>的<逻辑分组>。
♦ 我们可以配置<用户群组>来针对<Host Groups 主机群组>拥有<读写、读、拒绝、无>的权限。
♦ 在<Host Groups 主机群组>中,可以包含<主机对象>和<模板对象>。
★ 注意:
♦ <Host Groups 主机群组>并未采用<任何方式>在<主机对象>和<模板对象>之间的建立<关联关系>。

2. 要素:#

★ <主机群组>的<组名称>

3. 创建:主机群组(Host Groups)#

★ Web 控制台
Configuration
Host groups
右上角:Create host group
├→ [Group name 栏] → 输入:<主机组名称>>
├→ [Add](执行:添加操作)

三、 主机(Hosts)#

1. 功能:#

★ <Hosts 主机>是:一个对<被监控对象>。

2. 要素:#

(1) <Hosts 主机>在<Zabbix 平台>中的<唯一性的对象标识名称>
(2) <Hosts 主机>所属的<Host Groups 主机群组>
(3) <Hosts 主机>对应<真实物理设备>的<监视方式>(默认为:Zabbix Agent 客户端代理方式)
(4) <Hosts 主机>关联的<监视模板>
(5) <Hosts 主机>的<资产信息>
(6) 判断:针对<Hosts 主机>的<性能监视>是否成功?

3. 创建:主机(Hosts)#

★ Web 控制台
Configuration
Hosts
右上角:Create host
Host(创建:主机对象)
├→ [Host name 栏] → 输入:<主机名>,该<主机名>与<真实主机名>和<Zabbix Agen 配置文件>中的<自动注册名>无关
├→ [Groups 栏] → 选择:<主机组>
├→ [Interfaces 栏] → 选择:<真实主机>的<连接方式、IP 地址/主机名、端口...等等>
│ ♦ 默认采用:<Zabbix Agent 代理><连接方式>
├→ [Enabled 栏] → 选中:Enabled(默认:已被选中)
Templates(选择:关联的<监视模板>)
Inventory(录入:主机的资产信息)
[Add](执行:添加操作)
观察<Zabbix 主机>的<状态>

四、 Discovery 自动发现与监控#

在工作中,为了减轻手动添加的工作量,我们往往希望<Zabbix 服务端>可以主动发现并监控<设备对象>。
为此,我们可以在<Zabbix 服务端>上,配置<Discovery 自动发现 + Discovery 发现动作>来实现<Discovery 自动发现与监控>。
★ 注意:
♦ (1) <Discovery 发现规则>:采用的是<被动模式>,<发现了目标>不等于<监控了目标>。
♦ (2) <Discovery 发现动作>:基于<Discovery 发现规则>,来自动链接<指定的 Template 监控模板>,从而最终实现监控。
★ 注意:
♦ 在<Templates/Operating systems/Linux by Zabbix agent 模块>中,已预制了 3 个<Discovery 发现规则>。
(1) Block devices discovery(用于发现:块设备)
注意:Update interval: 1h(更新时间间隔为:1 小时,因此,不会立即看到发现结果)
(2) Mounted filesystem discovery(用于发现:文件系统挂载)
注意:Update interval: 1h(更新时间间隔为:1 小时,因此,不会立即看到发现结果)
(3) Network interface discovery(用于发现:网卡设备)
注意:Update interval: 1h(更新时间间隔为:1 小时,因此,不会立即看到发现结果)

1. 创建:<Discovery 发现规则>#

(1) 步骤说明:#

★ Web 控制台
Configuration # 配置
Discovery # 自动发现
右上角:Create discovery rule

(2) 解析:定义栏#

##
## ♦ Name ## 定义:发现规则名称。
## ♦ Discovery by proxy ## 选择:是否采用<Zabbix Proxy 分布式代理>来执行<自动发现>,默认为:No proxy。
## ♦ IP range ## 定义:IP 扫描范围,如:192.168.168.1-192.168.168.254 ◀ 注意:大范围 IP 扫描,是需要时间的。
## ♦ Update interval ## 定义:周期性执行<自动发现>的<时间间隔>,可以使用 s、m、h、d、w 时间单位。
## ♦ Checks ## 定义:执行<自动发现>的<探测方法>,可以添加多种<探测方法>。
## ◢ 注意:满足任何一种方法,均视为<发现 OK>
## ◢ 支持:SSH, LDAP、SMTP、FTP、HTTP、HTTPS、POP、NNTP、IMAP、TCP、Telnet、
## Zabbix agent、SNMPv1 agent、SNMPv2 agent、SNMPv3 agent、ICMP ping 多种方法。
## ♦ Device uniqueness criteria ## 定义:<Zabbix 主机对象唯一性>的保障方法(如:IP 地址),如若重复,则保留先发现的,不添加后发现的。
##
## ♦ Host name ## 定义:<Zabbix 主机对象>的<主机名称>。
## ◢ 可以采用:DNS name、IP address、Zabbix agent 采样值、SNMP agent 采样值。
## ♦ Visible name ## 定义:<Zabbix 主机对象>的<可见主机名称>。
## ◢ 可以采用:Host name、DNS name、IP address、Zabbix agent 采样值、SNMP agent 采样值。
## ♦ Enabled ## 选择:立即启用
##

(3) 案例演示:#

★ 配置:<Zabbix 服务端>自动发现<192.168.168.1-254 网络>中的<Zabbix Agent 客户端主机>
##
## ♦ Name :Discovery Zabbix Agent Client Hosts Rule
## ♦ Discovery by proxy :No proxy
## ♦ IP range :192.168.168.1-254
## ♦ Update interval :5m
## ♦ Checks :添加 Zabbix agent 的 "agent.ping" KEY 键
添加 Zabbix agent "system.hostname[host]" KEY 键
添加 Zabbix agent "system.uname" KEY 键
## ♦ Device uniqueness criteria :采用 IP address,来作为<对象唯一性>的保障方法
## ♦ Host name :采用 Zabbix agent "system.uname" 采样值,来作为<主机名>
## ♦ Visible name :采用 Zabbix agent "system.hostname[host]" 采样值,来作为<可见主机名>
## ♦ Enabled :选择<立即启用>
##

2. 创建:<Discovery 发现动作>#

(1) 步骤说明:#

★ Web 控制台
Configuration # 配置
Actions # 动作
左上角:下拉选择 Discovery actions 发现动作
右上角:Create action # 创建动作

(2) 解析:定义栏#

★ Action 动作规则栏:
## ♦ Name ## 定义:<动作规则>的<名称>。
## ♦ Conditions ## 定义:<动作规则>的<匹配条件>。
## ♦ 例如:采用<Discovery rule 发现规则>作为<匹配条件>。
## ♦ 可添加:一个或多个需要同时满足的<匹配条件>。
## ♦ Enabled ## 选择:立即启用。
★ Operations 附加操作栏:
## ♦ Operations ## 定义:<动作规则>匹配之后,需要执行的<操作>
## ♦ 例如:链接<指定的 Template 模块>
## ♦ 可以添加:一个或多个需要执行的<操作>。

(3) 案例演示:#

★ 配置:<Zabbix 服务端>在发现了<Zabbix Agent 客户端主机>之后,自动链接<指定 Template 模板>
## ♦ Name :Link Template Rule for Discovery Zabbix Agent Client Hosts Rule
## ♦ Conditions 条件 1 :须匹配<Discovery rule equals Discovery Zabbix Agent Client Hosts Rule>规则
## 条件 2 :须匹配<Host IP equals 192.168.168.1-254>规则
## ♦ Enabled :选择<立即启用>
★ Action 动作规则栏:
## ♦ Operations 动作 1 :执行 Link to templates: Template OS Linux by Zabbix agent 链接模板动作 # 与模板关联--选择--Template--Linux by Zabbix agent
## 动作 2 :执行 Add to host groups: Linux servers 加入主机组动作 # 添加到主机群组 -- 选择 -- Linux servers
## 动作 3 :执行 Enable host 立即启用动作 # 启用主机
★ Operations 附加操作栏:

五、 Autoregistration 自动注册与监控#

我们可以站在<Zabbix 服务端>的角度,来通过<Discovery 自动发现 + Discovery 发现动作>来实现<Discovery 自动发现与监控>,也可以站在<被监控端>的角度,来主动向<Zabbix 服务端>发出<注册请求>,从而实现被监控。
★ <Autoregistration 注册>分为以下两个配置步骤:
♦ 步骤 1:在<Zabbix Agent 客户端>,配置开启<自动注册功能>
♦ 步骤 2:在<Zabbix Server 服务端>,配置执行<自动注册动作>
★ 注意:
♦ (1) <Autoregistration 注册>:采用的是<主动模式>。
♦ (2) <Autoregistration 注册>:注册成功之后,就意味着<Zabbix 服务端>可以成功监控<客户端>了。

1. 配置:<Zabbix Agent 客户端>开启<Autoregistration 自动注册功能>#

##
## 我们可以在</etc/zabbix/zabbix_agentd.d 目录>创建一个<独立的配置文件>,来方便地配置<自动注册>
## 在配置<Zabbix 客户端>执行<自动注册>的过程中,我们需要:
## (1) 指定:<Zabbix 客户端>需要向谁发出<注册请求>
## (2) 设置:<Zabbix 客户端>的<注册名称>,用于在<Zabbix 服务端>注册生成<Host 主机标签名>
## 注册生成<Host 主机标签名>的方法有两种:
## ♦ 第一种 采用:手动指定<自定义 Host 主机标签名>(Hostname=xxx)
## ♦ 第二种 采用:获取指定<Item_Key 返回值>(HostnameItem=item_key)
## (3) 设置:为<Zabbix 服务端>的<自动注册动作>提供的<元数据>,从而有利于基于<不同的元数据>来执行<不同的自动注册动作>
## 定义<元数据>的方法有两种:
## ♦ 第一种 匹配:手动指定<自定义元数据>(HostMetadata=xxx)
## ♦ 第一种 匹配:获取指定<Item_Key 返回值>(HostMetadataItem=item_key)
##
Terminal window
vi /etc/zabbix/zabbix_agentd.d/autoActiveRegistration.conf
## -----------------------------------------------------------------
## 设置开启:<客户端>的<主动模式>,指定<Zabbix Server 服务器>的<IP 地址>
##
ServerActive=192.168.168.18:10051
## -----------------------------------------------------------------
## 设置采用:手动指定的<自定义 Host 主机标签名>(方法 1:Hostname)
## ① 须确保<自定义 Host 主机标签名>的<唯一性>
## ② 在<云平台>中,<云主机>的<主机名>是通过<UUID 号>来确保<唯一性>,因此建议使用<HostnameItem 参数>
## Hostname=rocky-9-10
##
## 设置采用:获取指定的<Item_Key 返回值>作为<Host 主机标签名>(方法 2:HostnameItem)
## ① Zabbix 可以通过<system.hostname 内置键>来获取<客户端主机名>
## ② 在<云平台>中,<云主机>的<主机名>是通过<UUID 号>来确保<唯一性>,因此建议使用<HostnameItem 参数>
## 注意:<Hostname 参数>会覆盖掉<HostnameItem 参数>。
HostnameItem=system.hostname
## -----------------------------------------------------------------
## 设置匹配:手动指定<自定义元数据>(方法 1:HostMetadata)
## ① <元数据标识字符串>的长度范围为 0~255。
##
HostMetadata=ZabbixAgent1 on Linux
##
## 设置匹配:获取指定<Item_Key 返回值>作为<元数据>(方法 2:HostMetadataItem)
## ① <HostMetadataItem 参数>用于获取<Item_Key 返回值>。
## ② <HostMetadataItem 参数>返回的<结果字符串>,其长度范围限制为 0~255。
## ③ <HostMetadataItem 参数>可以使用<内置 Item_Key 键>,也可以使用<用户自定义 Item_Key 键>。
## ④ 如何你希望使用<system.run[]内置键>,则需要开启<EnableRemoteCommands 参数>。
## 注意:<HostMetadata 参数>会覆盖掉<HostMetadataItem 参数>。
## HostMetadataItem=system.uname
systemctl restart zabbix-agent.service

2. 确保:<Zabbix Server 服务端>侦听<10051/tcp 端口>#

##
## 须在/etc/zabbix/zabbix_server.conf 配置文件中,确保:
## ♦ 侦听:<10051/tcp 端口>
##
Terminal window
vi /etc/zabbix/zabbix_server.conf
... ...
### Option: ListenPort
# Listen port for trapper.
#
# Mandatory: no
# Range: 1024-32767
# Default:
# ListenPort=10051 该<侦听端口>默认已启用,可以不用明确定义,除非你要更改这个<侦听端口>
ListenPort=10051
... ...
systemctl restart zabbix-server.service
firewall-cmd --permanent --zone=public --add-port=10051/tcp
firewall-cmd --reload

3. 配置:<Zabbix Server 服务端>执行<Autoregistration 自动注册动作>#

(1) 步骤说明:#

★ Web 控制台 → Configuration → Actions → 右上角:下拉选择 Autoregistration actions 自动注册动作
Create action

(2) 解析:定义栏#

★ Action 动作规则栏:
## ♦ Name ## 定义:<动作规则>的<名称>。
## ♦ Conditions ## 定义:<动作规则>的<匹配条件>。
## ♦ 可以选择 :Host name 方法、Host metadata 方法、Proxy 方法。
## ♦ 可以添加:一个或多个需要同时满足的<匹配条件>。
## ♦ Enabled ## 选择:立即启用。
★ Operations 附加操作栏:
## ♦ Operations ## 定义:<动作规则>匹配之后,需要执行的<操作>。
## ♦ 例如:链接<指定的 Template 模块>。
## ♦ 可以添加:一个或多个需要执行的<操作>。

(3) 案例演示:#

★ 配置:<Zabbix 服务端>自动发现<192.168.168.1-254 网络>中的<Zabbix Agent 客户端主机>
## ♦ Name :Auto Registration Zabbix Agent v1 Linux Client Hosts Rule
## ♦ Conditions :添加 Host metadata 方法(元数据标识为:ZabbixAgent1 on Linux)
## ♦ Operations :添加执行:Add host :添加执行:Add to host groups: Linux servers 加入主机组动作
:添加执行:Link to templates: Template OS Linux by Zabbix agent 链接模板动作
:添加执行:Enable host 立即启用动作
## ♦ Enabled :选择<立即启用>

★ 查看:自动注册的结果

★ 作业#

1#

  1. 当前你已经部署好了一台 Zabbix Server 核心服务器,现在有 1 台 Rocky Linux 9 服务器,请在 Zabbix 监控平台上,采用手动添加方式来监控该 Rocky Linux 9 服务器,并链接内置的监控模板。

2#

  1. 当前你已经部署好了一台 Zabbix Server 核心服务器,现在有 2 台 Rocky Linux 9 服务器,请在 Zabbix 监控平台上,采用自动发现和发现动作,来监控这 2 台 Rocky Linux 9 服务器。

3#

  1. 当前你已经部署好了一台 Zabbix Server 核心服务器,现在有 2 台 Rocky Linux 9 服务器,请在 Zabbix 监控平台上,采用自动注册和注册动作,来监控这 2 台 Rocky Linux 9 服务器。
04-Zabbix-监控对象管理
https://fuwari.vercel.app/posts/zabbix监控/04-zabbix-监控对象管理/
作者
肥猫少杰
发布于
2026-06-04
许可协议
CC BY-NC-SA 4.0