CentOS 7.9 源码编译部署 Zabbix 6.0 全过程记录
📌 部署背景与环境要求
Zabbix 官方部署要求参考:
🔗 https://www.zabbix.com/documentation/6.0/en/manual/installation/requirements
Zabbix 6.0 部署要求:
- 支持的前端访问页面: Apache 2.4 或更高版本;Nginx 1.20 或更高版本
- 支持的数据库类型:
- MySQL: 8.0.30-9.6.X
- MariaDB: 10.5.00-12.2.X
- PostgreSQL: 13.0-18.X
- SQLite: 3.3.5-3.53.X
- 支持的 PHP 版本: PHP 7.2.5 或更高版本
📦 本次部署组件选择:
- OS: CentOS 7.9
- Zabbix: 6.0.46 (源码)
- MySQL: 8.0.36
- PHP: 7.4
- Nginx: 1.22
各组件部署形式:
mysql: rpm包安装,mysql官方社区直接可以下载打包好的rpm包集合,省心
php: yum仓库安装,原因是php有太多环境依赖
zabbix6.0:源码编译安装,官方没有针对centos7.9打包好的rpm包,这个zabbix还可以直接使用官方打包好的rpm包,看自己的需求
nginx:前端web应用,直接yum部署即可
💡 为什么采用源码编译?
官方在 2023 年后停止对 CentOS7 的 6.0 server 包支持。因此需要自己手动编译,只能直接手搓一个编译后的二进制包了。
将下载好的 mysql 打包好的 rpm 包集合,zabbix 的源码包全部下载到服务器上面:
[root@zabbix opt]# ll
总用量 5649388
-rw-r--r-- 1 root root 1030420480 5月 14 13:47 mysql-8.0.36-1.el7.x86_64.rpm-bundle.tar
-rw-r--r-- 1 root root 41430362 5月 14 13:47 zabbix-6.0.46.tar.gz
🛠️ 1. 安装部署 MySQL 服务
https://downloads.mysql.com/archives/community/

1.1 解压并使用 RPM 安装
[root@zabbix opt]# mkdir mysql
[root@zabbix opt]#
[root@zabbix opt]# tar xf mysql-8.0.36-1.el7.x86_64.rpm-bundle.tar -C mysql/
[root@zabbix opt]# ll mysql
总用量 1006276
-rw-r--r-- 1 7155 31415 16767208 12月 14 2023 mysql-community-client-8.0.36-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 3621168 12月 14 2023 mysql-community-client-plugins-8.0.36-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 681264 12月 14 2023 mysql-community-common-8.0.36-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 528659552 12月 14 2023 mysql-community-debuginfo-8.0.36-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 1948160 12月 14 2023 mysql-community-devel-8.0.36-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 4217212 12月 14 2023 mysql-community-embedded-compat-8.0.36-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 2344468 12月 14 2023 mysql-community-icu-data-files-8.0.36-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 1563732 12月 14 2023 mysql-community-libs-8.0.36-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 685408 12月 14 2023 mysql-community-libs-compat-8.0.36-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 67429872 12月 14 2023 mysql-community-server-8.0.36-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 25664528 12月 14 2023 mysql-community-server-debug-8.0.36-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 376818184 12月 14 2023 mysql-community-test-8.0.36-1.el7.x86_64.rpm
# rpm安装
[root@zabbix mysql]# yum localinstall *.rpm
1.2 启动数据库
[root@zabbix mysql]# systemctl enable --now mysqld.service
[root@zabbix mysql]#
[root@zabbix mysql]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2026-05-14 14:21:52 CST; 3s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 5276 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 5342 (mysqld)
Status: "Server is operational"
CGroup: /system.slice/mysqld.service
└─5342 /usr/sbin/mysqld
5月 14 14:21:39 zabbix systemd[1]: Starting MySQL Server...
5月 14 14:21:52 zabbix systemd[1]: Started MySQL Server.
1.3 进入数据库修改密码
[root@zabbix mysql]# tail -f /var/log/mysqld.log | grep root@localhost
2026-05-14T06:21:44.071886Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 3*>fhjWn(C%r
[root@zabbix mysql]# mysql -uroot -p'3*>fhjWn(C%r'
mysql> alter user root@localhost identified by 'Lh@123456';
Query OK, 0 rows affected (0.01 sec)
1.4 创建 Zabbix 数据库与用户
⚠️ 注意: MySQL8.0 默认认证插件:
caching_sha2_password,Zabbix6.0、PHP7.4 客户端不支持这种新加密方式,不改这条:Zabbix 页面连不上数据库、直接报错无法连接。
mysql> create database zabbix character set
-> utf8 collate utf8_bin;
Query OK, 1 row affected, 2 warnings (0.01 sec)
mysql>
mysql> create user 'zabbix'@'localhost' identified by 'Lh@123456';
Query OK, 0 rows affected (0.02 sec)
mysql> ALTER USER 'zabbix'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Lh@123456';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
-- Zabbix 专用临时参数(必须开)
-- 作用:导入 zabbix 数据库结构时允许创建存储过程,不然导入 SQL 失败
mysql> set global log_bin_trust_function_creators = 1;
Query OK, 0 rows affected, 1 warning (0.00 sec)
1.5 导入 SQL 初始数据
下载 zabbix6.0 的源码包,将 sql 数据导入到 zabbix 库中:
[root@zabbix opt]# tar xf zabbix-6.0.46.tar.gz
[root@zabbix opt]# cd zabbix-6.0.46/database/mysql/
[root@zabbix mysql]#
# 需要将 schema.sql images.sql data.sql 导入 zabbix 库
[root@zabbix mysql]# ll
总用量 20916
-rw-rw-r-- 1 1000 1000 19240269 5月 5 15:01 data.sql
-rw-rw-r-- 1 1000 1000 1978341 5月 5 15:00 images.sql
-rw-rw-r-- 1 1000 1000 786 5月 5 15:00 Makefile.am
-rw-rw-r-- 1 1000 1000 23351 5月 5 15:01 Makefile.in
drwxrwxr-x 2 1000 1000 92 5月 5 15:01 option-patches
-rw-rw-r-- 1 1000 1000 166646 5月 5 15:01 schema.sql
按顺序依次导入 sql 表: 先建表(schema.sql),再导图标(images.sql),最后导基础数据(data.sql):
[root@zabbix mysql]# mysql -uzabbix -p'Lh@123456' zabbix < schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@zabbix mysql]# mysql -uzabbix -p'Lh@123456' zabbix < images.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@zabbix mysql]# mysql -uzabbix -p'Lh@123456' zabbix < data.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
🐘 2. 安装部署 PHP 服务
2.1 安装源配置
安装 EPEL 源(必须,解决基础依赖):
yum install -y epel-release
安装 php Remi 仓库源(提供 PHP 7.4):
[root@zabbix opt]# yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
[root@zabbix opt]# cd /etc/yum.repos.d/
[root@zabbix yum.repos.d]#
[root@zabbix yum.repos.d]# ll
总用量 68
-rw-r--r--. 1 root root 193 3月 31 11:25 epel.repo
-rw-r--r-- 1 root root 1358 9月 5 2021 epel.repo.rpmnew
-rw-r--r-- 1 root root 1457 9月 5 2021 epel-testing.repo
-rw-r--r--. 1 root root 81 3月 31 13:45 local.repo
-rw-r--r-- 1 root root 855 11月 28 2023 remi-modular.repo
-rw-r--r-- 1 root root 456 11月 28 2023 remi-php54.repo
-rw-r--r-- 1 root root 1314 11月 28 2023 remi-php70.repo
-rw-r--r-- 1 root root 1314 11月 28 2023 remi-php71.repo
-rw-r--r-- 1 root root 1314 11月 28 2023 remi-php72.repo
-rw-r--r-- 1 root root 1314 11月 28 2023 remi-php73.repo
-rw-r--r-- 1 root root 1314 11月 28 2023 remi-php74.repo
-rw-r--r-- 1 root root 1314 11月 28 2023 remi-php80.repo
-rw-r--r-- 1 root root 1314 11月 28 2023 remi-php81.repo
-rw-r--r-- 1 root root 1314 11月 28 2023 remi-php82.repo
-rw-r--r-- 1 root root 1314 11月 28 2023 remi-php83.repo
-rw-r--r-- 1 root root 2605 11月 28 2023 remi.repo
-rw-r--r-- 1 root root 750 11月 28 2023 remi-safe.repo
启动 remi-php74.repo 仓库:
[root@zabbix yum.repos.d]# sed -i '/^\[remi-php74\]/,/^enabled=/ s/enabled=0/enabled=1/' /etc/yum.repos.d/remi-php74.repo
[root@zabbix yum.repos.d]# grep -A5 '\[remi-php74\]' /etc/yum.repos.d/remi-php74.repo | grep enable
enabled=1
[root@zabbix opt]# yum clean all && yum makecache
2.2 安装 PHP 及相关组件
[root@zabbix opt]# yum --enablerepo=remi-php74 install -y php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-bcmath php-json php-opcache php-ldap
这行命令会自动安装:
php→ 主程序php-fpm→ Nginx 对接 PHP 必须php-mysqlnd→ MySQL 连接(Zabbix 连数据库必须)php-gd→ 图片处理(画图、报表)php-mbstring→ 多字节字符php-xml→ XML 处理php-bcmath→ 数学计算(Zabbix 必需要!)php-json→ JSON 支持php-opcache→ 加速php-ldap→ 企业登录(可选但推荐)
[root@zabbix mysql]# php -v
PHP 7.4.33 (cli) (built: Jun 5 2024 05:05:14) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies
2.3 设置 PHP 开机自启
[root@zabbix mysql]# systemctl enable --now php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[root@zabbix mysql]# systemctl enable --now php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[root@zabbix mysql]#
[root@zabbix mysql]# ss -tlnp | grep 9000
LISTEN 0 128 127.0.0.1:9000 *:* users:(("php-fpm",pid=6346,fd=9),("php-fpm",pid=6345,fd=9),("php-fpm",pid=6344,fd=9),("php-fpm",pid=6343,fd=9),("php-fpm",pid=6342,fd=9),("php-fpm",pid=6341,fd=7))
🌐 3. 安装部署 Nginx 服务
3.1 配置 Nginx 官方 Yum 仓库并安装
[root@zabbix opt]# cat > /etc/yum.repos.d/nginx.repo <<EOF
> [nginx-stable]
> name=nginx stable repo
> baseurl=http://nginx.org/packages/centos/7/\$basearch/
> gpgcheck=1
> enabled=1
> gpgkey=https://nginx.org/keys/nginx_signing.key
>
> [nginx-mainline]
> name=nginx mainline repo
> baseurl=http://nginx.org/packages/mainline/centos/7/\$basearch/
> gpgcheck=1
> enabled=0
> gpgkey=https://nginx.org/keys/nginx_signing.key
> EOF
[root@zabbix opt]# yum --showduplicates list nginx | grep 1.22
nginx.x86_64 1:1.22.0-1.el7.ngx nginx-stable
nginx.x86_64 1:1.22.1-1.el7.ngx nginx-stable
[root@zabbix opt]# yum install -y nginx-1.22.1
[root@zabbix opt]# nginx -v
nginx version: nginx/1.22.1
3.2 配置 Nginx 服务
[root@zabbix conf.d]# cp default.conf default.conf.bak
[root@zabbix conf.d]# cat default.conf
server {
listen 80;
server_name _;
root /code;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
include fastcgi_params;
}
}
[root@zabbix conf.d]# mkdir /code
[root@zabbix conf.d]# chown -R nginx:nginx /code
[root@zabbix conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
3.3 启动 Nginx 并开机自启
[root@zabbix conf.d]# systemctl enable --now nginx
[root@zabbix conf.d]# ss -tlnp | egrep '80|3306|9000'
LISTEN 0 128 127.0.0.1:9000 *:* users:(("php-fpm",pid=6346,fd=9),("php-fpm",pid=6345,fd=9),("php-fpm",pid=6344,fd=9),("php-fpm",pid=6343,fd=9),("php-fpm",pid=6342,fd=9),("php-fpm",pid=6341,fd=7))
LISTEN 0 128 *:80 *:* users:(("nginx",pid=6610,fd=6),("nginx",pid=6609,fd=6))
LISTEN 0 128 [::]:3306 [::]:* users:(("mysqld",pid=5342,fd=24))
LISTEN 0 70 [::]:33060 [::]:* users:(("mysqld",pid=5342,fd=21))
3.4 部署前端代码与权限配置
将源码中的前端页面代码文件拷贝到 /code 目录:
[root@zabbix zabbix-6.0.46]# cp -r ui/* /code/
[root@zabbix zabbix-6.0.46]#
[root@zabbix zabbix-6.0.46]# ll /code/
[root@zabbix zabbix-6.0.46]# chown -R nginx:nginx /code
统一让 php-fpm 和 nginx 使用 nginx 用户运行服务,默认 nginx 启动用 nginx 用户:
[root@zabbix zabbix-6.0.46]# cat /etc/nginx/nginx.conf | grep nginx | grep user
user nginx;
[root@zabbix zabbix-6.0.46]# sed -i 's/^user = apache/user = nginx/' /etc/php-fpm.d/www.conf
[root@zabbix zabbix-6.0.46]# sed -i 's/^group = apache/group = nginx/' /etc/php-fpm.d/www.conf
[root@zabbix zabbix-6.0.46]# cat /etc/php-fpm.d/www.conf | grep nginx
user = nginx
group = nginx
3.5 调整 PHP 参数并重启服务
修改 php.ini 修改下面这三个参数,否则 zabbix 起不来,zabbix6.0 要求 php 最低配置要求,配置好时区:
[root@zabbix zabbix-6.0.46]# cat /etc/php.ini | egrep 'post_max_size|max_execution_time|max_input_time|Asia/ShangHai'
; max_input_time
max_execution_time = 300
max_input_time = 300
post_max_size = 16M
date.timezone = Asia/ShangHai
重启 php-fpm 服务和 nginx:
[root@zabbix zabbix-6.0.46]# systemctl restart php-fpm.service
[root@zabbix zabbix-6.0.46]# systemctl restart nginx.service
⚙️ 4. 编译 Zabbix 服务端
4.1 安装编译依赖
[root@zabbix zabbix-6.0.46]# yum -y install gcc gcc-c++ make pcre-devel pcre2-devel libxml2 libxml2-devel net-snmp-devel curl-devel libcurl-devel OpenIPMI-devel zlib-devel libevent libevent-devel mysql-devel
4.2 编译与安装
[root@zabbix zabbix-6.0.46]# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
[root@zabbix zabbix-6.0.46]# make -j4
[root@zabbix zabbix-6.0.46]# make install
# 完成后检查
[root@zabbix zabbix-6.0.46]# zabbix_
zabbix_agentd zabbix_get zabbix_js zabbix_sender zabbix_server
4.3 配置 Zabbix 数据库连接与用户
配置 zabbix 数据库连接信息:
[root@zabbix zabbix-6.0.46]# grep -n ^DB /usr/local/etc/zabbix_server.conf
99:DBName=zabbix
115:DBUser=zabbix
124:DBPassword=Lh@123456
创建 zabbix 启动虚拟用户 zabbix:
[root@zabbix zabbix-6.0.46]# groupadd zabbix
[root@zabbix zabbix-6.0.46]#
[root@zabbix zabbix-6.0.46]# useradd -g zabbix -s /sbin/nologin -d /usr/local/zabbix -m zabbix
4.4 编写 Systemd 运行 Zabbix
创建并编写 Agent 服务文件:
[root@zabbix zabbix-6.0.46]# cat /etc/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent 6.0 (Compiled)
After=network.target
[Service]
Type=forking
User=zabbix
Group=zabbix
ExecStart=/usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
创建并编写 Server 服务文件:
[root@zabbix zabbix-6.0.46]# cat /etc/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server 6.0 (Compiled)
After=mysqld.service network.target
[Service]
Type=forking
User=zabbix
Group=zabbix
ExecStart=/usr/local/sbin/zabbix_server -c /usr/local/etc/zabbix_server.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
重新加载服务并启动:
[root@zabbix zabbix-6.0.46]# systemctl daemon-reload
[root@zabbix zabbix-6.0.46]# systemctl enable --now zabbix-server.service zabbix-agent.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /etc/systemd/system/zabbix-server.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /etc/systemd/system/zabbix-agent.service.
# 检查端口监听情况
[root@zabbix zabbix-6.0.46]# netstat -tnulp | grep 10050
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 18487/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 18487/zabbix_agentd
[root@zabbix zabbix-6.0.46]#
[root@zabbix zabbix-6.0.46]# netstat -tnulp | grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 18394/zabbix_server
tcp6 0 0 :::10051 :::* LISTEN 18394/zabbix_server
🖥️ 5. 界面安装部署
至此,所有服务端与依赖环境的安装已全部完成。
浏览器打开服务器的 IP 地址,进入 Web 前端配置页面,跟随引导验证依赖项状态并输入数据库连接信息(密码为:Lh@123456),即可完成最终部署。默认初始登录账号:Admin / zabbix。








🖥️ 6.更换zabbix 前端代码目录里面的字体,设置中文语言后必须要配置
在windows上面找一个正常使用的字体,比如说微软雅黑字体,上传到代码目录fonts当中,然后先备份原有字体,再将上传的字体变更成zabbix默认识别的字体
[root@zabbix fonts]# ll
总用量 19984
-rw-r--r-- 1 nginx nginx 756072 5月 14 16:04 DejaVuSans.ttf.bak
-rw-r--r-- 1 root root 19704352 5月 15 16:02 msyh.ttc
[root@zabbix fonts]#
[root@zabbix fonts]# mv msyh.ttc DejaVuSans.ttf
[root@zabbix fonts]#
[root@zabbix fonts]# ll
总用量 19984
-rw-r--r-- 1 root root 19704352 5月 15 16:02 DejaVuSans.ttf
-rw-r--r-- 1 nginx nginx 756072 5月 14 16:04 DejaVuSans.ttf.bak
[root@zabbix fonts]# chown nginx:nginx DejaVuSans.ttf
[root@zabbix fonts]#
[root@zabbix fonts]# ll
总用量 19984
-rw-r--r-- 1 nginx nginx 19704352 5月 15 16:02 DejaVuSans.ttf
-rw-r--r-- 1 nginx nginx 756072 5月 14 16:04 DejaVuSans.ttf.bak
由于字体替换是即时生效的(因为 Zabbix 前端是用 PHP 和 GD 库实时渲染图片的)。
回到你的 Zabbix Web 页面,在键盘上按下 Ctrl + F5 强制刷新网页。
此时,那些方块 [[]] 就会变成清晰明了的中文 [最新]、[最小]、[平均]、[最大] 了!

浙公网安备 33010602011771号