欧拉系统openEuler-24.03-LTS-SP1,二进制安装安装MySQL8.0.26,并搭建zabbix7.X
首先要准备MySQL的二进制安装包。 我的系统环境是Centos8。
我这里 用的 mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz 。
先在/softwares解压出来。

tar xf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
cd /usr/local
ls
mv /softwares/mysql-8.0.26-linux-glibc2.12-x86_64 .
ln -s mysql-8.0.26-linux-glibc2.12-x86_64/ mysql
useradd -s /sbin/nologin -M mysql
id mysql
mkdir /data/3306 -p
chown -R mysql. /data/3306/
==================添加mysql启动=======================
vim /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000
==================这个别名看自己意愿添加yy=======================
vim ~/.bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias yy='egrep -v "^#|^$"'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
==================添加MySQL路径,添加到最后一行=======================
vim /etc/profile
export PATH="/usr/local/mysql/bin:$PATH"
source /etc/profile
==================配置MySQL配置文件=======================
vim /etc/my.cnf
[mysql]
socket=/tmp/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
default_authentication_plugin=mysql_native_password
==================MySQL初始化=======================
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data
echo $?
systemctl start mysqld
systemctl status mysqld
==================遇到一个插曲=======================
====CentOS 8 /openEuler 24.03 自带的是 libtinfo.so.6,没有 libtinfo.so.5,所以会报这个错。====
[root@xqzaxsvr data]# find /usr/lib64 -name "libtinfo.so*"
/usr/lib64/libtinfo.so.6
/usr/lib64/libtinfo.so.6.1
[root@xqzaxsvr data]# ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
[root@xqzaxsvr data]# mysql -S /tmp/mysql.sock
然后就可以进来了
至此,数据库是安装好了。
现在开始搞zabbix7.0
zabbix我用的lamp架构,如果喜欢lnmp架构,也是可以的。 我就不修改了。
开始安装zabbix
wget https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.0.26.tar.gz
tar -xf zabbix-7.0.26.tar.gz
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
mkdir -p /app/zabbix
ls /softwares/
cd /softwares/zabbix-7.0.26
dnf -y install libevent-devel
dnf -y install mysql-devel
dnf -y install pcre-devel
dnf install -y gcc make automake autoconf libtool mysql-devel libevent-devel net-snmp-devel curl-devel tree
./configure --prefix=/app/zabbix --enable-server --enable-agent --with-mysql
make install
我这里装好了是这样的

dnf -y install php php-fpm zabbix-apache-conf
mv /softwares/zabbix-7.0.26/ui/* /var/www/html
systemctl start httpd && systemctl enable httpd
systemctl start php-fpm && systemctl enable php-fpm
这里是要开启Apache里的php模块
echo "LoadModule proxy_module modules/mod_proxy.so" >> /etc/httpd/conf/httpd.conf
echo "LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so" >> /etc/httpd/conf/httpd.conf
vim /etc/httpd/conf.d/zabbix.conf
这里和下面的配置文件做个对比,因我用的zabbix.sock,所以要和下面的zabbix.conf一一对应。不然打不开网页,因为网页请求不到php
<VirtualHost *:80>
DocumentRoot "/var/www/html"
ServerName 192.168.1.103
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# 关键配置:把 PHP 请求转发给 PHP-FPM
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm/zabbix.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>

systemctl restart httpd php-fpm
最终装好了,开始默认配置了。


数据库部分(原本以为到这里就可以顺利进行下去了,没想到网页里没发现支持mysql的插件)
所以我有陈故乡你编译了,看看是不是mysql插件没有安装上,后来发现是不支持。但是没关系,如果你安装的是zabbix6.0是支持mysql的。zabbix7.0以后就不支持了。只能又安装postgresql 。但是对于mysql的数据库操作的学习不会浪费掉。
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by '你的密码';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;
cat /softwares/zabbix-7.0.26/database/mysql/schema.sql | mysql -uzabbix -p zabbix
cat /softwares/zabbix-7.0.26/database/mysql/images.sql | mysql -uzabbix -p zabbix
cat /softwares/zabbix-7.0.26/database/mysql/data.sql | mysql -uzabbix -p zabbix
相关数据导入完成后关掉log_bin_trust_function_creators功能。
set global log_bin_trust_function_creators = 0;
quit;
发现我的zabbix没有安装mysql支持,所以只能重新编译安装
dnf install -y mysql-devel
dnf install -y libxml2-devel
make clean
./configure --prefix=/app/zabbix \
--enable-server \
--enable-agent \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-libxml2
make -j$(nproc)
make install
===========================================================================================================================
又遇到了插曲,做到快结束了,居然才发现zabbix7.0已经不支持MySQL了。没关系,我们重新编译,改为postgresql
我原来里面已经安装好了,我把原来的数据库删除掉,重新建立新的。
\l 显示所有数据
drop database zabbix; 删除数据库
# 切换到 postgres 用户,数据库操作
su - postgres
# 进入 psql 命令行
psql
-- 创建 zabbix 数据库(编码必须为 UTF8)
CREATE DATABASE zabbix OWNER postgres ENCODING 'UTF8';
-- 创建 zabbix 用户并设置密码
CREATE USER zabbix WITH PASSWORD '你的密码';
GRANT ALL ON SCHEMA public TO zabbix;
-- 授权 zabbix 用户访问 zabbix 数据库(发现几次导入不进去表,所以按照下面的操作,要开权限给zabbix用户)
GRANT ALL PRIVILEGES ON DATABASE zabbix TO zabbix;
ALTER ROLE zabbix WITH CREATEROLE CREATEDB;
-- 1. 授予 zabbix 用户对 public 模式的所有权限
GRANT ALL ON SCHEMA public TO zabbix;
-- 2. 授予 zabbix 用户创建表、视图等的权限
ALTER ROLE zabbix WITH SUPERUSER;
-- 3. 确保 public 模式对 zabbix 用户开放
GRANT CREATE ON SCHEMA public TO zabbix;
-- 4. 刷新权限
\c zabbix
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO zabbix;
-- 退出 psql
\q
# 切回 root 用户
exit
删除原来编译的目录数据,重新编译
rm -fr /app/zabbix/*
cd /softwares/zabbix-7.0.26
dnf install -y postgresql-devel 先安装开发包
./configure --prefix=/app/zabbix \
--enable-server \
--enable-agent \
--with-postgresql \
--with-net-snmp \
--with-libcurl \
--with-libxml2
make -j$(nproc)
make install
# 进入源码目录的数据库脚本目录
cd /softwares/zabbix-7.0.26/database/postgresql
# 导入数据库结构(按顺序执行)
psql -U zabbix -d zabbix -h 127.0.0.1 -W -f schema.sql
psql -U zabbix -d zabbix -h 127.0.0.1 -W -f images.sql
psql -U zabbix -d zabbix -h 127.0.0.1 -W -f data.sql
表导入完成后,开始检查配置文件。
修改以下关键配置
vi /app/zabbix/etc/zabbix_server.conf

创建日志与 PID 目录
mkdir -p /var/log /var/run/zabbix
touch /var/log/zabbix_server.log
chown -R root:root /var/log/zabbix_server.log /var/run/zabbix
验证进程
ps aux | grep zabbix_server
杀掉进程,重开
pkill zabbix_server
cd /softwares/zabbix-7.0.26
# 清理旧的编译文件
make clean
# 重新配置,确保 PostgreSQL 路径正确
./configure --prefix=/app/zabbix \
--enable-server \
--enable-agent \
--with-postgresql=/usr/bin/pg_config \
--with-net-snmp \
--with-libcurl \
--with-libxml2
# 重新编译安装
make -j$(nproc)
make install
编译完了,发现还是开不起来。执行 以下操作。
echo "/usr/pgsql/lib" >> /etc/ld.so.conf.d/zabbix.conf
echo "/usr/lib64" >> /etc/ld.so.conf.d/zabbix.conf
ldconfig
2. 检查库文件是否能被找到
ldd /app/zabbix/sbin/zabbix_server | grep postgres
正常会显示 libpq.so.5 => /usr/lib64/libpq.so.5,如果显示 not found,说明路径还是不对。
3. 重新编译 Zabbix(关键步骤)
先进入源码目录,重新配置并编译:
b
cd /softwares/zabbix-7.0.26
# 清理旧的编译文件
make clean
# 重新配置,确保 PostgreSQL 路径正确
./configure --prefix=/app/zabbix \
--enable-server \
--enable-agent \
--with-postgresql=/usr/bin/pg_config \
--with-net-snmp \
--with-libcurl \
--with-libxml2
# 重新编译安装
make -j$(nproc)
make install
4. 启动 Zabbix Server
/app/zabbix/sbin/zabbix_server
可以开起来了。
到了配置界面的时候,要写清楚端口和数据库的账号密码。、

安装好了,是这样。

现在开始配置开机自启动了。
vi /etc/systemd/system/zabbix_server.service
[Unit]
Description=Zabbix Server
After=network.target postgresql.target
[Service]
Type=forking
User=zabbix
Group=zabbix
ExecStart=/app/zabbix/sbin/zabbix_server -c /app/zabbix/etc/zabbix_server.conf
PIDFile=/tmp/zabbix_server.pid
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now zabbix-server
systemctl status zabbix-server

浙公网安备 33010602011771号