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

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

中文方法

介绍

在 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 主导数据收集,但大规模下可能成为瓶颈。
  • 主动检查:适合大规模环境,减轻 Server 压力,Agent 自主上报,但配置稍复杂(需确保 Agent 能连接 Server)。

实际使用中,可根据监控规模混合使用两种模式(部分关键指标用被动,非关键指标用主动)。

二、环境准备

前提条件

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

三、在 Linux 服务器上安装 Zabbix Agent

执行以下命令安装 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+ubuntu20.04_all.deb

# 安装源包
dpkg -i zabbix-release_6.0-4+ubuntu20.04_all.deb

# 添加依赖源
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 过程示意图

到此,我们的分支有主动检查与被动检查两种工作模式,根据实际情况选择,例如服务器较多,优先选择主动模式,避免Zabbix server较高负载

四、配置被动检查

1. 编辑 Agent 配置文件

1
vim /etc/zabbix/zabbix_agentd.conf

修改以下参数:

1
2
Server = 192.168.87.147  # 替换为实际的 Zabbix Server IP
Hostname = UbuntuServer-22.0.4 # 自定义主机名,需与 Zabbix 前端配置一致

2. 在 Zabbix 前端添加主机

  1. 进入 Zabbix 前端,导航至:配置 > 主机 > 创建主机(右上角)。
  2. 填写基本信息:
    • 主机名称:必须与 Agent 配置文件中的 Hostname 完全一致(如 Linux-Server-01)。
    • 模板选择:Linux by zabbix agent
    • 可见名称:自定义显示名称(如 “Web 服务器 - 01”)。
    • 群组:点击 “选择”,添加到合适的主机群组(如 “Linux 服务器”,若无则新建)。

Zabbix 创建主机基本信息配置

Zabbix 主机群组配置

3. 重启并设置 Agent 服务

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

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

Zabbix Agent 服务状态示意图

4. 开放 10050 端口

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

1
2
sudo ufw allow 10050/tcp
sudo ufw reload

五、配置主动检查

1. 编辑 Agent 配置文件

1
vim /etc/zabbix/zabbix_agentd.conf

2. 在 Zabbix 前端添加主机

  1. 进入 Zabbix 前端,导航至:配置 > 主机 > 创建主机(右上角)。
  2. 填写基本信息:
    • 主机名称:必须与 Agent 配置文件中的 Hostname 完全一致(如 Linux-Server-01)。
    • 模板:键入或选择 Linux by Zabbix agent active。
    • 可见名称:自定义显示名称(如 “Web 服务器 - 01”)。
    • 群组:点击 “选择”,添加到合适的主机群组(如 “Linux 服务器”,若无则新建)。

3. 修改核心配置项(必选项)

添加:

  • 您在 Zabbix web 界面中创建的主机的名称 Hostname 参数。
  • Zabbix server的IP地址或DNS名称设置到 ServerActive 参数.
1
2
3
4
5
6
7
# 主动模式下的 Zabbix Server 地址(约 171 行附近)
# 可填写多个地址,用逗号分隔
ServerActive=192.168.87.147 # 替换为实际的 Zabbix Server IP

# 客户端主机名(约 182 行附近)
# 必须与 Zabbix 前端添加的主机名完全一致
Hostname=UbuntuServer-22.0.4 # 例如:服务器的 hostname 或自定义名称

主动检查配置示意图

六、登录 Zabbix 前端配置主机

配置完成后效果如下:

Zabbix 主机配置完成示意图

七、监控数据查看

查看服务器指标数据

要查看收集的指标,请打开 监视->主机 菜单 ,然后点击主机旁边的 最新数据 。

Zabbix 监控指标数据展示

八、配置邮箱监控告警

  1. 登录 Zabbix 前端,进入 用户设置 -> 配置
  2. 切换到 媒体 选项卡,点击 添加 按钮配置邮箱地址。

Zabbix 用户媒体配置入口

Zabbix 邮箱告警配置