麒麟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

相关推荐
EMTime2 小时前
Docker运行OpenWRT
运维·docker·容器
lolo大魔王2 小时前
Linux 文件系统超全面详解(原理、结构、挂载、分区、inode、日志、管理命令)
linux·运维·服务器
磊 子4 小时前
详细讲解一下epoll
linux·io·epoll·io多路复用
printfLILEI4 小时前
php中的类与对象以及反序列化
linux·开发语言·php
zyl837215 小时前
Docker 使用手册
运维·docker·容器
古月方枘Fry5 小时前
MGRE实验
运维·服务器
叠叠乐6 小时前
redmi k90 pro max 强解BL,刷海外rom, 并刷入sukisu ultra
linux
stolentime6 小时前
FreeDomain 本地开发环境快速搭建指南
运维·服务器·网络
xiaoye-duck6 小时前
《Linux系统编程》Linux 进程间通信之管道基础解析:从匿名管道原理到基于管道的进程池实现
linux