Linux系统中Zabbix Agent 7.0 离线安装指南

Zabbix Agent 7.0 离线安装指南

安装包下载地址

https://www.zabbix.com/cn/download_agents?version=7.0+LTS\&release=7.0.27\&os=Linux\&os_version=3.0\&hardware=amd64\&encryption=No+encryption\&packaging=Archive\&show_legacy=0

适用环境

  • 操作系统:CentOS 7.x(本文以 CentOS 7.6 为例)
  • Zabbix Agent 版本:7.0.27(静态编译版)
  • 安装包zabbix_agent-7.0.27-linux-3.0-amd64-static.tar.gz

安装包结构

复制代码
zabbix_agent-7.0.27-linux-3.0-amd64-static.tar.gz
├── bin/
│   ├── zabbix_get        # 用于从 agent 获取监控数据
│   └── zabbix_sender     # 用于主动推送数据到 server
├── sbin/
│   └── zabbix_agentd     # agent 守护进程
└── conf/
    ├── zabbix_agentd.conf          # 主配置文件
    └── zabbix_agentd/
        ├── userparameter_examples.conf  # 自定义监控项示例
        └── userparameter_mysql.conf     # MySQL 监控模板

安装步骤

1. 上传安装包

zabbix_agent-7.0.27-linux-3.0-amd64-static.tar.gz 上传到服务器的 /data/zabbix-agent/ 目录。

2. 解压安装包

bash 复制代码
cd /data/zabbix-agent
tar xzf zabbix_agent-7.0.27-linux-3.0-amd64-static.tar.gz

3. 复制文件到安装目录

bash 复制代码
mkdir -p /usr/local/zabbix-agent
cp -r /data/zabbix-agent/bin /data/zabbix-agent/sbin /data/zabbix-agent/conf /usr/local/zabbix-agent/

4. 修改配置文件

编辑 /usr/local/zabbix-agent/conf/zabbix_agentd.conf,修改以下关键配置:

ini 复制代码
# 服务端 IP(被动模式,允许此 IP 来拉取数据)
Server=zabbix服务器的ip

# 服务端 IP(主动模式,向此 IP 推送数据)
ServerActive=zabbix服务器的ip

# 本机主机名(需与 Zabbix 服务端配置一致)
Hostname=自定义的被监控端名字

# 日志文件路径
LogFile=/tmp/zabbix_agentd.log

注意Hostname 必须与 Zabbix 服务端添加主机时填写的名称完全一致。

5. 创建 zabbix 系统用户

Zabbix Agent 不允许以 root 用户运行,需要创建专用系统用户:

bash 复制代码
useradd -r -s /sbin/nologin zabbix
chown -R zabbix:zabbix /usr/local/zabbix-agent

6. 创建 systemd 服务

创建服务文件 /etc/systemd/system/zabbix-agent.service

ini 复制代码
[Unit]
Description=Zabbix Agent
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/zabbix-agent/sbin/zabbix_agentd -c /usr/local/zabbix-agent/conf/zabbix_agentd.conf
ExecStop=/bin/kill -TERM $MAINPID
Restart=on-failure
User=zabbix

[Install]
WantedBy=multi-user.target

7. 启动服务并设置开机自启

bash 复制代码
systemctl daemon-reload
systemctl start zabbix-agent
systemctl enable zabbix-agent

8. 验证服务状态

bash 复制代码
# 查看服务状态
systemctl status zabbix-agent

# 查看端口监听(默认 10050)
ss -tlnp | grep 10050

# 查看进程
ps aux | grep zabbix_agentd | grep -v grep

防火墙配置

如果服务器开启了防火墙,需要放通 10050 端口:

bash 复制代码
firewall-cmd --add-port=10050/tcp --permanent
firewall-cmd --reload

或使用 iptables:

bash 复制代码
iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
service iptables save

常见问题

Q1: 启动报错 "user zabbix does not exist" / "cannot run as root!"

原因:Zabbix Agent 7.0 不允许以 root 用户运行。

解决

bash 复制代码
useradd -r -s /sbin/nologin zabbix
chown -R zabbix:zabbix /usr/local/zabbix-agent

并确保 systemd 服务文件中 User=zabbix

Q2: 服务端无法连接到 Agent

排查步骤

  1. 检查 Agent 是否正常运行:systemctl status zabbix-agent
  2. 检查端口是否监听:ss -tlnp | grep 10050
  3. 检查防火墙是否放通 10050 端口
  4. 从服务端测试连通性:telnet <agent_ip> 10050
  5. 检查配置文件中 Server 地址是否正确

Q3: 主动模式不工作

排查步骤

  1. 检查 ServerActive 配置是否正确
  2. 检查 Hostname 是否与服务端配置一致
  3. 查看日志:tail -f /tmp/zabbix_agentd.log

常用管理命令

bash 复制代码
# 启动服务
systemctl start zabbix-agent

# 停止服务
systemctl stop zabbix-agent

# 重启服务
systemctl restart zabbix-agent

# 查看状态
systemctl status zabbix-agent

# 查看日志
journalctl -u zabbix-agent -f

# 禁用开机自启
systemctl disable zabbix-agent

卸载方法

bash 复制代码
# 停止并禁用服务
systemctl stop zabbix-agent
systemctl disable zabbix-agent

# 删除服务文件
rm -f /etc/systemd/system/zabbix-agent.service
systemctl daemon-reload

# 删除安装目录
rm -rf /usr/local/zabbix-agent

# 删除用户(可选)
userdel zabbix