CentOS 7.9 生产级部署 Zabbix Agent 2 实战全流程(基于主动模式)

📝 环境说明

  • 操作系统: CentOS 7.9
  • 主机名: zabbix-agent2-go
  • Zabbix 版本: 6.0.46 (LTS)
  • 上游数据接收端: Zabbix Proxy (192.168.108.30)
  • 核心策略: 全局采用 Active(主动推数据)模式,通过自动获取主机名实现标准化部署。

🛠️ 步骤一:安装 Zabbix 6.0 YUM 仓库

首先导入 Zabbix 官方的源。此步骤会自动配置官方的 RPM 仓库路径。

[root@zabbix-agent2-go ~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
获取https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
警告:/var/tmp/rpm-tmp.gr9iAr: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zabbix-release-6.0-4.el7         ################################# [100%]

# 清理缓存并重新生成 yum 缓存
[root@zabbix-agent2-go ~]# yum clean all && yum makecache

🛠️ 步骤二:安装 Zabbix Agent 2

得益于 Agent 2 的 Go 语言架构,大部分主流监控插件已直接编译在二进制文件中,直接通过 yum 一键安装即可,无需额外处理繁杂的依赖。

[root@zabbix-agent2-go ~]# yum install -y zabbix-agent2

🛠️ 步骤三:生产级配置文件优化

这是部署中最核心的一步。我们首先备份默认配置,然后重写核心参数。

[root@zabbix-agent2-go ~]# cp /etc/zabbix/zabbix_agent2.conf /etc/zabbix/zabbix_agent2.conf.bak

# 过滤查看当前生效的核心配置
[root@zabbix-agent2-go ~]# egrep -v '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
ServerActive=192.168.108.30      #这是指向proxy的地址
HostnameItem=system.hostname
Timeout=30
Include=/etc/zabbix/zabbix_agent2.d/*.conf
PluginSocket=/run/zabbix/agent.plugin.sock
ControlSocket=/run/zabbix/agent.sock
Include=./zabbix_agent2.d/plugins.d/*.conf

💡 配置原理解析(最佳实践):

  1. ServerActive=192.168.108.30:配置为纯主动模式,Agent 2 会主动将采集的数据推送给 Zabbix Proxy。这极大降低了服务端的网络轮询开销。(注意:配置中去除了被动模式的 Server= 参数,实现彻底解耦)
  2. HostnameItem=system.hostname:使用系统自带的主机名作为 Zabbix 注册名称。这种配置方式非常适合批量自动化部署 (如 Ansible/SaltStack),无需逐台手动修改 Agent 配置文件中的 Hostname
  3. Timeout=30:全局超时时间设置为最大值 30 秒。防止某些慢速脚本或慢查询(如数据库深度监控)由于默认 3 秒超时而导致采集失败。

🛠️ 步骤四:开机自启与日志验证

启动服务并验证配置是否真正生效,特别是自动获取主机名是否成功。

# 启动并设置开机自启
[root@zabbix-agent2-go ~]# systemctl enable --now zabbix-agent2
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent2.service to /usr/lib/systemd/system/zabbix-agent2.service.

# 查看 Agent 2 启动日志
[root@zabbix-agent2-go ~]# tail -f /var/log/zabbix/zabbix_agent2.log
2026/05/17 13:12:22.977834 Zabbix Agent 2 stopped. (6.0.46)
2026/05/17 13:12:23.069633 Starting Zabbix Agent 2 (6.0.46)
2026/05/17 13:12:23.070550 OpenSSL library (OpenSSL 1.0.2k-fips  26 Jan 2017) initialized
2026/05/17 13:12:23.070733 using configuration file: /etc/zabbix/zabbix_agent2.conf
...
2026/05/17 13:12:23.071778 using plugin 'ZabbixSync' (built-in) providing following interfaces: exporter, maximum capacity: 1, active checks on start enabled: false
2026/05/17 13:12:23.071982 Plugin communication protocol version is 6.0.13
2026/05/17 13:12:24.001198 Zabbix Agent2 hostname: [zabbix-agent2-go]

重点观察日志最后一行: Zabbix Agent2 hostname: [zabbix-agent2-go]。这证明 HostnameItem 参数成功读取到了当前系统的计算机名,通信底层构建成功。


🖥️ 步骤五:Zabbix Server Web 端配置接入

回到 Zabbix Web 管理页面,将该主机纳入监控体系:

  1. 导航至 配置 (Configuration) -> 主机 (Hosts),点击右上角 创建主机 (Create host)
  2. 主机名称 (Host name): 严格填写 zabbix-agent2-go (必须与刚才日志中获取到的名字一模一样)。
  3. 模板 (Templates): 选择适配 Agent 2 主动模式的模板,如 Linux by Zabbix agent active
  4. 主机群组 (Groups): 根据业务归属选择(如 Linux servers)。
  5. 由代理监控 (Monitored by proxy): ⚠️ 极其重要! 由于我们的 Agent 数据推给了 Proxy,这里必须在下拉菜单中选择你的代理程序名称 (即对应 192.168.108.30 的 Proxy)。如果不选,Server 将拒绝接收数据。
  6. 点击 添加 (Add)

71a930566d3c4c8458f6544b810f9d8e

image

image

最后,导航至 监测 (Monitoring) -> 最新数据 (Latest data),通过主机名过滤,确认数据指标已经带上时间戳持续刷新,部署圆满完成!

posted on 2026-05-17 13:28  LeeHang  阅读(27)  评论(0)    收藏  举报