麒麟V10Sp3系统部署Zabbix7.0全攻略

一、 部署环境准备

麒麟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 均已启用,且数据库适配 MySQLWith 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 

http://主机IP//setup.php

四、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

相关推荐
一叶星殇1 小时前
解决IIS无法支持APK文件的下载
运维·服务器
YXWik62 小时前
Linux 环境 libreoffice 执行word转pdf 中文乱码问题
linux·pdf·word
袖手蹲2 小时前
Arduino UNO Q 板载 Nanobot 自动化编程指南之一
运维·自动化
老星*2 小时前
Umami:轻量级开源网站分析工具,打造隐私友好的Google Analytics替代方案
运维·安全·开源
bai_lan_ya2 小时前
嵌入式linux--文件IO中dup/dup2的使用
linux·运维·服务器
H_老邪2 小时前
新人初识ECS 服务器
运维·服务器
北风toto2 小时前
Jenkins的安装与启动
运维·servlet·jenkins
牛奶咖啡132 小时前
DevOps自动化运维实践_Legacy Boot与UEFI Boot网络启动(PXE)的原理解析
运维·devops·dhcp·pxe·tftp·uefi boot网络启动原理·legacy boot启动原理
Cx330❀2 小时前
Linux System V标准简介
大数据·linux·运维·服务器·人工智能