Zabbix部署监控Linux-Server 主动检查与被动插件 最佳实践

在 Linux 服务器上部署 Zabbix Agent 并配置监控

中文方法

介绍

在 Zabbix 监控中,主动检查(Active Checks)和被动检查(Passive Checks)是 Agent 与 Server 之间数据收集的两种核心模式,主要区别体现在请求发起方、工作流程、资源消耗等方面,具体如下:

1. 被动模式

Zabbix Server 主动向 Agent 发送数据查询请求,Agent 被动收集数据并返回给 Server;若数据量过大,会造成 Server 端负载过高。

被动模式流程图
图 1:Zabbix 被动模式数据交互流程

2. 主动模式

Zabbix Agent 主动向 Server 发起连接,请求监控项配置,然后按周期收集数据并上报给 Server。

主动模式流程图
图 2:Zabbix 主动模式数据交互流程

二、主动检查与被动检查核心区别

在 Zabbix 监控中,主动检查(Active Checks)和被动检查(Passive Checks)是 Agent 与 Server 之间数据收集的两种核心模式,主要区别体现在请求发起方、工作流程、资源消耗等方面。

1. 核心区别:谁发起请求?

  • 被动检查(Passive Checks)
    Zabbix Server 主动向 Agent 发起数据请求,Agent 被动响应。
    (Server 问,Agent 答)

  • 主动检查(Active Checks)
    Zabbix Agent 主动向 Server 发送数据,Server 被动接收。
    (Agent 主动上报,Server 接收)

2. 工作流程差异

被动检查流程

  1. Zabbix Server 根据预设监控项(Item)周期,向目标 Agent 发送数据请求(TCP 连接 Agent 的 10050 端口)。
  2. Agent 收到请求后,执行监控项逻辑(如获取 CPU 使用率、内存占用等)。
  3. Agent 将收集到的数据返回给 Server。
  4. Server 接收数据并存储(写入数据库),用于后续展示或告警触发。

主动检查流程

  1. Zabbix Agent 启动后,主动连接 Zabbix Server 的 10051 端口,请求“需要主动上报的监控项列表”。
  2. Server 返回该 Agent 对应的监控项配置(含监控频率、指标类型等)。
  3. Agent 根据配置周期,自主收集监控项数据。
  4. 到达上报时间后,Agent 主动将数据发送给 Server(通过 10051 端口)。
  5. Server 接收并存储数据。

3. 配置参数差异

配置项 被动检查依赖 主动检查依赖
Agent 配置文件 Server=Zabbix_Server_IP(允许发起请求的 Server 地址) ServerActive=Zabbix_Server_IP(Agent 主动连接的 Server 地址)
Hostname=Agent_Hostname(Agent 标识名称,需与 Server 主机名一致)
端口要求 Agent 开放 10050 端口(供 Server 连接) Server 开放 10051 端口(供 Agent 连接)

4. 优缺点对比

对比维度 被动检查 主动检查
Server 负载 高(需主动向所有 Agent 发请求,Agent 越多负载越大) 低(仅接收数据,无需主动发起请求)
网络流量 集中在 Server 侧(Server 向多 Agent 发请求) 分散在 Agent 侧(多 Agent 向 Server 发数据)
灵活性 监控频率由 Server 统一控制,调整方便 监控频率由 Agent 本地配置,适合不同 Agent 自定义周期
适用场景 小规模监控(Agent 数量少,如几十台以内) 大规模监控(Agent 数量多,如几百/几千台)
故障排查 易排查(Server 日志可直接查看请求失败原因) 较复杂(需检查 Agent 连接权限、网络等)

模式选择总结

  • 被动检查:适合小规模环境,配置简单、Server 主导数据收集,但大规模下易成瓶颈。
  • 主动检查:适合大规模环境,减轻 Server 压力、Agent 自主上报,但配置稍复杂(需确保 Agent 能连接 Server)。

实际使用中可混合模式:关键指标用被动,非关键指标用主动。

三、环境准备

前提条件

  1. 已部署并运行 Zabbix Server(服务器端)。
  2. 待监控 Linux 服务器(Ubuntu 22.04)与 Zabbix Server 网络互通(需开放 10050 端口,Agent 默认端口)。

四、安装 Zabbix Agent(Linux 端)

执行以下命令完成 Zabbix Agent 安装:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 下载 Zabbix 源配置包
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb

# 安装源配置包
sudo dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb

# 添加依赖源(解决 libssl1.1 依赖问题)
echo "deb http://security.ubuntu.com/ubuntu focal-security main" | sudo tee /etc/apt/sources.list.d/focal-security.list

# 更新软件包索引
sudo apt update

# 安装依赖包
sudo apt install -y libssl1.1 libldap-2.4-2

# 安装 Zabbix Agent
apt install -y zabbix-agent

安装 Zabbix Agent 过程示意图
图 3:Zabbix Agent 安装过程示例

📌 提示:安装完成后,需根据监控规模选择模式:服务器数量多时优先选主动模式,避免 Zabbix Server 负载过高。

五、配置被动检查

1. 编辑 Agent 配置文件

1
vim /etc/zabbix/zabbix_agentd.conf

修改以下核心参数(按实际环境替换):

1
2
3
4
5
# 允许发起请求的 Zabbix Server IP(可填写多个,用逗号分隔)
Server = 192.168.87.147

# 客户端主机名(需与 Zabbix 前端配置的主机名完全一致)
Hostname = UbuntuServer-22.04

2. Zabbix 前端添加主机

  1. 登录 Zabbix 前端,导航至:配置 > 主机 > 创建主机(右上角)。
  2. 填写基本信息:
    • 主机名称:必须与 Agent 配置文件的 Hostname 一致(如 UbuntuServer-22.04)。
    • 模板选择:搜索并勾选 Linux by zabbix agent
    • 可见名称:自定义显示名称(如 “Web 服务器 - 01”)。
    • 群组:点击「选择」,添加到目标群组(如 “Linux 服务器”,无则新建)。

Zabbix 创建主机基本信息配置
图 4:被动模式主机基本信息配置

Zabbix 主机群组配置
图 5:主机群组选择示例

3. 启动并设置 Agent 服务

1
2
3
4
5
6
7
8
# 重启 Agent 服务(应用配置)
sudo systemctl restart zabbix-agent

# 设置开机自启
sudo systemctl enable zabbix-agent

# 验证服务状态(可选)
sudo systemctl status zabbix-agent

Zabbix Agent 服务状态示意图
图 6:Zabbix Agent 服务运行状态示例

4. 开放 10050 端口

允许 Zabbix Server 访问 Agent 默认端口:

1
2
3
4
5
# 开放 10050 TCP 端口
sudo ufw allow 10050/tcp

# 重载防火墙规则
sudo ufw reload

六、配置主动检查

1. 编辑 Agent 配置文件

1
vim /etc/zabbix/zabbix_agentd.conf

2. 修改核心配置参数(必选)

1
2
3
4
5
# 主动连接的 Zabbix Server IP(可填多个,逗号分隔,约 171 行)
ServerActive = 192.168.87.147

# 客户端主机名(必须与 Zabbix 前端主机名一致,约 182 行)
Hostname = UbuntuServer-22.04

主动检查配置示意图
图 7:主动模式 Agent 配置示例

3. Zabbix 前端添加主机

  1. 导航至:配置 > 主机 > 创建主机(右上角)。
  2. 填写基本信息:
    • 主机名称:与 Agent 配置的 Hostname 完全一致(如 UbuntuServer-22.04)。
    • 模板选择:搜索并勾选 Linux by Zabbix agent active
    • 可见名称:自定义显示名称(如 “数据库服务器 - 01”)。
    • 群组:添加到目标群组(如 “Linux 服务器”)。

4. 启动并设置 Agent 服务

1
2
3
4
5
# 重启 Agent 服务
sudo systemctl restart zabbix-agent

# 设置开机自启
sudo systemctl enable zabbix-agent

七、Zabbix 前端主机配置效果

配置完成后,在「配置 > 主机」页面可看到目标主机状态为「已启用」,模板绑定成功:

Zabbix 主机配置完成示意图
图 8:主机配置完成后的前端展示

八、监控数据查看

查看实时指标数据

  1. 登录 Zabbix 前端,导航至:监视 > 主机
  2. 在目标主机右侧,点击「最新数据」。
  3. 可查看 CPU、内存、磁盘、网络等指标的实时数据(需等待 1-5 分钟数据采集周期)。

Zabbix 监控指标数据展示
图 9:监控指标最新数据示例

九、配置邮箱监控告警

1. 配置用户媒体(接收告警的邮箱)

  1. 登录 Zabbix 前端,点击右上角用户名,选择「用户设置 > 配置」。
  2. 切换至「媒体」选项卡,点击「添加」。
  3. 填写配置信息:
    • 类型:选择「Email」。
    • 收件人:输入接收告警的邮箱地址。
    • 其他参数默认(或按企业邮箱要求调整 SMTP 配置)。
  4. 点击「更新」保存配置。

Zabbix 用户媒体配置入口
图 10:用户媒体配置入口

Zabbix 邮箱告警配置
图 11:邮箱告警详细配置

2. 启用告警触发器(可选)

默认模板已包含基础告警触发器(如 CPU 使用率过高、磁盘空间不足等),若需自定义告警阈值,可在「配置 > 模板 > 触发器」中调整。