一、 部署环境准备
麒麟V10 Sp3 操作系统镜像
https://sl.ygwid.cn/
1.1、网络环境准备:

1.2、防火墙以及selinux关闭
bash
systemctl stop firewalld && systemctl disable firewalld #关闭防火墙
setenforce 0 #临时关闭selinx
vim /etc/selinux/config #编辑seliunx文件
SELINUX=disbaled #修改配置
1.3、依赖软件安装
bash
yum install -y pcre* libevent-devel pcre-devel libxml2-devel curl-devel
yum install -y net-snmp-devel
yum install -y net-snmp

1.4、文件下载
bash
#zabbix官网7.0.3下载
wget https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.0.3.tar.gz

bash
#mysql官方下载地址
wget https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.43-linux-glibc2.28-x86_64.tar.xz

bash
# 官方下载地址
wget http://nginx.org/download/nginx-1.24.0.tar.gz

创建msyql和zabbix的解压目录
bash
mkdir mysql zabbix

二、安装ZABBIX服务端
2.1、Mysql安装配置
卸载原有数据库
bash
#查找已安装的MariaDB软件包
rpm -qa|grep mariadb
#移除安装
rpm -e --nodeps mariadb-connector-c-3.0.6-9.ky10.x86_64

解压源码包
bash
mkdir -p /usr/local/mysql
#将上面的mysql安装包下载,上传到麒麟服务器上,逐级解压源码包
tar -xvf mysql-8.0.43-linux-glibc2.28-x86_64.tar.xz -C /usr/local/mysql/ --strip-components=1

创建用户以及相关目录赋权
bash
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
cd /usr/local/mysql/
mkdir data log
chown -R mysql:mysql /usr/local/mysql
编辑 /etc/my.cnf
bash
[mysqld]
# 基础配置(修正 socket 为实际生成路径)
user=mysql
port=33660
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-error=/usr/local/mysql/log/mysql-err.log
socket=/tmp/mysql.sock # 核心修复:改为 MySQL 实际生成的路径
pid-file=/usr/local/mysql/data/mysql.pid
# 认证与字符集配置
default_authentication_plugin=mysql_native_password
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
lower_case_table_names=1 # 注意:MySQL 8.0 需初始化时设置,运行中修改无效
# SQL 模式与 InnoDB 配置
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE
innodb_strict_mode=1
innodb_log_file_size=512M
innodb_redo_log_capacity=1073741824 # 补充:解决日志中 innodb_log_file_size 弃用警告
# 性能优化配置
log_bin_trust_function_creators=1
back_log=600
max_connections=1000
max_connect_errors=6000
open_files_limit=65535
table_open_cache=2000
max_allowed_packet=64M
binlog_cache_size=32M
max_heap_table_size=32M
tmp_table_size=64M
default-storage-engine=InnoDB
# 网络连接配置(补充:确保网络连接正常)
bind-address=0.0.0.0 # 允许所有IP连接(按需改为具体IP,如 127.0.0.1)
skip_networking=OFF # 显式禁用 skip_networking,确保TCP连接可用
[client]
port=33660 # 补充:与 mysqld 端口一致
socket=/tmp/mysql.sock # 核心修复:与 mysqld 的 socket 路径完全一致
default-character-set=utf8mb4 # 补充:客户端字符集与服务端一致

bash
useradd -r -g mysql -s /bin/bash zabbix # 登录zabbix用户
#创建日志目录
mkdir -p /usr/local/mysql/log
chown -R mysql:mysql /usr/local/mysql # 设置文件目录所有者为zabbix
chmod 777 -R /usr/local/mysql/log
chmod 777 -R /usr/local/mysql/data

服务配置文件初始化
bash
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#查看日志,复制登陆密码
tail -f 1000 log/mysql-err.log

bash
#创建软连接
ln -s /usr/local/mysql/bin/mysgl /usr/bin
#设置环境变量
echo export PATH=/usr/local/mysql/bin:$PATH >> /etc/profile
source /etc/profile
#快捷启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +X /etc/init.d/mysqld
touch /etc/systemd/system/mysqld.service
vim /etc/systemd/system/mysqld.service

bash
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=zabbix
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --datadir=/usr/local/mysql/data --socket=/usr/local/mysql/data/mysql.sock
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target

bash
systemctl daemon-reload #第一步:重载系统服务配置
systemctl start mysqld #第二步:启动 MySQL 服务
systemctl status mysqld

登录mysql 并作其他操作
初始化root密码
bash
#从配置的日志文件中查找临时密码:
grep 'temporary password' /usr/local/mysql/log/mysql-err.log
#初始化root密码
mysql -u root -p

bash
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Zabbix@2026';
FLUSH PRIVILEGES; #刷新权限
show databases; #查库
show grants for current_user; #查看当前用户所拥有的权限


创建zabbix数据库以及zabbix用户,并设置允许远程连接
bash
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER IF NOT EXISTS 'zabbix'@'%' IDENTIFIED BY 'zabbix';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%';
update mysql.user set host = '%' where user = 'root';
flush privileges;
show databases;

2.2、zabbix server安装
bash
cd /data/
tar -zvxf zabbix-7.0.3.tar.gz -C zabbix/
cd zabbix/zabbix-7.0.3
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy --with-net-snmp --with-libcurl --with-libxml2 --with-mysql
make install


- 核心功能已启用 :Server/Proxy/Agent 均已启用,且数据库适配 MySQL (
With database: MySQL),完全匹配你之前配置的 MySQL 环境;- 依赖库正常 :
libmysqlclient(MySQL 客户端库)、curl(WEB 监控)、netsnmp(SNMP 监控)等核心依赖均已正确链接;- 配置路径明确 :Server 配置文件路径为
/usr/local/zabbix/etc/zabbix_server.conf,这是后续需要修改的核心文件。
复制启动命令到系统执行
bash
cp -a /usr/local/zabbix/bin/* /bin/
cp -a /usr/local/zabbix/sbin/* /sbin/
数据库创建并导入(如果上述创建请忽略)
bash
mysql -uroot -p # 登录mysql
#创建zabbix的数据库,在创建zabbix数据库时,要特别注意,zabbix对数据库的字符比较严格,使用utf8_bin编码
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
#在数据库创建完成后,我们进行zabbix用户对数据库登录的授权
CREATE USER IF NOT EXISTS 'zabbix'@'%' IDENTIFIED BY 'zabbix';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%';
flush privileges;
导入zabbix的数据库数据,zabbix的数据库文件在源码包下database目录中,在该目录下有很多子目录,用于支持各种不同的数据库,在这里,我们选择MySQL数据库,进入该子目录下,发现里面有三个.sql文件,分别是schema.sql,images.sql以及data.sql,接下来,我们分别将这三个数据库文件进行导入
bash
cd /data/zabbix/zabbix-7.0.3/database/mysql #解压在/root目录下的文件,然后进到数据库目录
mysql -uzabbix -pzabbix -D zabbix < ./schema.sql
mysql -uzabbix -pzabbix -D zabbix < ./images.sql
mysql -uzabbix -pzabbix -D zabbix < ./data.sql


配置文件编辑
zabbix的配置文件在安装目下的etc子目录下,zabbix server的配置目录名为zabbix_server.conf,打开该文件,我们主要更改一下数据库的配置信息。包括DBHost(数据库设备)、DBName(zabbix使用的数据库名称)、DBUser(数据库用户)、DBPassword(数据库密码)和DBPort(数据库端口号)等。这些内容的值要和我们之前在创建数据库和进行授权时的值相对应
bash
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/usr/local/mysql/data/mysql.sock # mysql.sock的路径一定要对,否则zabbix端口起不来
DBPort=33660

2.3、安装依赖
bash
cd /usr/local/zabbix/sbin/
ldd zabbix_server # 记录下找不到的依赖文件名称

bash
updatedb
locate libmysqlclient.so.21
ln -s /usr/local/mysql/lib/libmysqlclient.so.21 /lib64/
locate libcrypto.so.3
ln -s /usr/local/mysql/lib/private/libcrypto.so.3 /lib64/
locate libssl.so.3
ln -s /usr/local/mysql/lib/private/libssl.so.3 /lib64/

2.4、启动zabbix_server服务
当然报错zabbix不能用root启动,这时你需要新建一个zabbix用户
bash
/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf
配置启动脚本
路径:/root/zabbix/zabbix-7.0.3/misc/init.d/fedora/core/
bash
cd /data/zabbix/zabbix-7.0.3/misc/init.d/fedora/core/
cp /data/zabbix/zabbix-7.0.3/misc/init.d/fedora/core/zabbix_server /etc/init.d/
cp /data/zabbix/zabbix-7.0.3/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
chmod 751 /etc/init.d/zabbix_*
service zabbix_server start
systemctl status zabbix_server

三、安装zabbix Web端
3.1、安装nginx
bash
cd /data/
mkdir nginx
tar -zvxf nginx-1.24.0.tar.gz -C nginx/
预编译,然后安装nginx,安装完之后查看版本
bash
groupadd zabbix
usermod -aG zabbix zabbix
cd /data/nginx/nginx-1.24.0
./configure --user=zabbix --group=zabbix --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre
make -j 8 && make install
/usr/local/nginx/sbin/nginx -V

修改nginx配置文件
bash
tee > /usr/lib/systemd/system/nginx.service << "EOF"
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=-/usr/local/nginx/sbin/nginx -s reload
ExecStop=-/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
启动服务
bash
systemctl daemon-reload
systemctl start nginx.service
systemctl enable nginx.service
3.2、安装PHP
bash
yum install php php-devel.x86_64 php-mysqlnd -y
systemctl start php-fpm.service
systemctl status php-fpm.service

修改php监听端口
bash
vim /etc/php-fpm.d/www.conf
#加一行
listen = 127.0.0.1:9000

配置Web服务--更改nginx配置
bash
cat > /usr/local/nginx/conf/nginx.conf << 'EOF'
user zabbix;
worker_processes 1;
error_log /usr/local/nginx/logs/error.log warn;
events {
worker_connections 1024;
}
http {
include /usr/local/nginx/conf.d/*.conf;
include mime.types;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /usr/local/nginx/logs/access.log main;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
}
EOF

创建zabbix的web配置
bash
mkdir /usr/local/nginx/conf.d
touch /usr/local/nginx/conf.d/zabbix.conf

bash
cat > /usr/local/nginx/conf.d/zabbix.conf << 'EOF'
server {
listen 80;
server_name localhost;
root /usr/local/nginx/html; # Zabbix前端文件最终存放目录
index index.php;
location ~ \.php$ {
index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
EOF
复制zabbix的前端文件到/usr/local/nginx/html
bash
cp -ar /data/zabbix/zabbix-7.0.3/ui/* /usr/local/nginx/html/

全部服务重启并设置开机自启
bash
systemctl restart nginx.service && systemctl enable nginx.service
systemctl restart php-fpm.service && systemctl enable php-fpm.service
systemctl restart zabbix_server.service && systemctl enable zabbix_server
systemctl restart mysqld.service && systemctl enable mysqld.service

四、web登录

点击下一步进行下一步操作,可以看到有下面这些报错,按照后续步骤一步一步来

编辑/etc/php.ini文件,修改为如下内容
bash
vim /etc/php.ini
date.timezone = PRC
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
mysqli.default_socket = /usr/local/mysql/data/mysql.sock
pdo_mysql.default_socket=/usr/local/mysql/data/mysql.sock
mysqli.default_port = 33660
下载缺失的php插件
bash
yum install -y php-bcmath php-mbstring php-gd php-xml
改完之后执行systemctl restart php-fpm.service
然后刷新网页,可以看到全部正常,点击Next,执行下一步操作




报错,提示无法创建配置文件,手动下载图中的文件导入到相对应目录下/usr/local/nginx/html/conf/,上传保存完之后,刷新网页,重新走一遍前面的安装流程,然后到这就安装完成了


尝试登录web界面,Admin/zabbix

