3126 字
16 分钟
04-Zabbix-监控对象管理
Zabbix 6.4 分布式企业级性能监控平台
Zabbix 监控对象管理官网:https://www.zabbix.com/cn
一、实验环境
| 节点 | 角色 | IP 地址 | 操作系统: | 硬件规格 |
|---|---|---|---|---|
| rocky-9-16 | MySQL 数据库(版本:8.0) 加装:Zabbix Agent 客户端代理 | 192.168.168.16/24 | Rocky Linux 9 | 1 vCPU、2GB 内存 |
| rocky-9-17 | Nginx + PHP Web 前端 加装:Zabbix Agent 客户端代理 | 192.168.168.17/24 | Rocky Linux 9 | 1 vCPU、2GB 内存 |
| rocky-9-18 | Zabbix Server 核心服务(版本:6.4) | 192.168.168.18/24 | Rocky Linux 9 | 1 vCPU、2GB 内存 |
| rocky-9-19 | 被监控主机 安装:Zabbix Agent 客户端代理 | 192.168.168.19/24 | Rocky Linux 9 | 1 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)## 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.service2. 确保:<Zabbix Server 服务端>侦听<10051/tcp 端口>
#### 须在/etc/zabbix/zabbix_server.conf 配置文件中,确保:## ♦ 侦听:<10051/tcp 端口>## 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 --reload3. 配置:<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
- 当前你已经部署好了一台 Zabbix Server 核心服务器,现在有 1 台 Rocky Linux 9 服务器,请在 Zabbix 监控平台上,采用手动添加方式来监控该 Rocky Linux 9 服务器,并链接内置的监控模板。

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

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

04-Zabbix-监控对象管理
https://fuwari.vercel.app/posts/zabbix监控/04-zabbix-监控对象管理/