zabbix安装配置核心是分清角色、匹配版本、严控依赖、逐项验证:服务端需数据库(utf8mb4_bin)、web(apache/nginx+php≥8.0)与zabbix协同;客户端轻量部署,关键配server、serveractive、hostname三参数,并开放10050端口。

Linux 运维中安装配置 Zabbix 客户端(Agent)与服务端(Server),核心是分清角色、匹配版本、严控依赖、逐项验证。服务端需数据库+Web+PHP协同,客户端只需轻量部署并连通服务端;两者都必须注意系统版本、字符集、SELinux 和防火墙策略。
服务端:数据库、Web、Zabbix 三者对齐
服务端不是装完包就能用,关键在底层组件兼容性:
- 数据库选 MariaDB 10.5+ 或 MySQL 8.0+,字符集强制设为 utf8mb4(不是 utf8),排序规则用
utf8mb4_bin,否则中文主机名、模板名入库乱码或被截断 - Web 服务推荐 Apache(官方包已预配),若用 Nginx,必须搭配官方源提供的
zabbix-nginx-conf包,否则 PHP-FPM 不识别/zabbix路径,页面空白或报 502 - PHP 版本要 ≥ 8.0(Zabbix 6.0+),必装扩展:
php-bcmath、php-mbstring、php-xml、php-gd、php-mysqlnd;漏装php-fpm或未启用php-opcache,会导致前端加载极慢或白屏 - SELinux 若开启,需执行:
setsebool -P httpd_can_network_connect_db on,否则 zabbix_server 连本地数据库失败却无明确日志提示
服务端:初始化与关键配置项
数据库和配置文件出错,90% 的 “Checking prerequisites” 卡死或 500 错误都源于此:
- 创建数据库时用完整语句:
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;,用户授权后必须FLUSH PRIVILEGES; - 导入 SQL 脚本必须严格对应 Zabbix 版本,例如 Zabbix 6.4 就只能用
/usr/share/doc/zabbix-server-mysql-6.4.*/create.sql.gz,混用 6.0 的脚本会缺表、缺触发器,导致前端权限报错 -
/etc/zabbix/zabbix_server.conf只改三项就可启动:DBHost=localhostDBName=zabbixDBPassword=你的密码
其他字段如ListenPort、StartPollers可先用默认值,等连通后再调优
客户端(Agent):轻量但须精准匹配
Agent 部署简单,但连不上服务端往往因配置细节偏差:
- 安装方式优先用官方源:
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm,再yum install zabbix-agent;避免混用 EPEL 源的旧包(尤其 Rocky Linux 9 需在 epel.repo 中加excludepkgs=zabbix*) -
/etc/zabbix/zabbix_agentd.conf关键三行:Server=192.168.10.100(被动模式,填服务端 IP)ServerActive=192.168.10.100(主动模式,也填服务端 IP)Hostname=web01(必须和服务端 Web 界面添加主机时填写的“主机名称”完全一致,区分大小写) - 启动前确认:
systemctl enable zabbix-agent、systemctl start zabbix-agent,然后执行ss -tlnp | grep :10050看端口是否监听;防火墙放行:firewall-cmd --add-port=10050/tcp --permanent && firewall-cmd --reload
连通性验证与排障要点
服务端启动后访问 http://IP/zabbix,完成向导即可;但真正生效要看数据采集:
- 服务端执行:
zabbix_get -s 192.168.10.200 -k "system.uname"(替换为 Agent IP),能返回系统信息说明基础通信正常 - Agent 端查日志:
tail -f /var/log/zabbix/zabbix_agentd.log,常见错误如 “cannot connect to [192.168.10.100]:10051” 表示网络不通或服务端 zabbix-server 未运行 - 服务端查日志:
tail -f /var/log/zabbix/zabbix_server.log,出现 “no active checks on server [xxx]” 说明 Agent 主机名不匹配,或服务端未在 Web 界面完成“添加主机”操作 - 时间不同步会导致认证失败,所有节点统一用
chronyd同步:timedatectl set-ntp true











