Anolis OS 23安装zabbix

Anolis 23 的官方源里彻底找不到 OpenIPMI 相关的 RPM 包,我们采取**"编译安装 + 核心组件分离"**的策略

第一步:准备编译环境

虽然 DNF 找不到 Zabbix 的 RPM,但它有基础的开发工具。我们需要先装好 PHP 8.3 环境和开发套件:

bash 复制代码
# 解决 TLS、SSH、ODBC、SNMP 等所有核心功能的依赖
yum install -y openssl-devel libssh2-devel unixODBC-devel net-snmp-devel libxml2-devel libcurl-devel go
# 安装 LDAP, YAML, Java 等开发库
yum install -y openldap-devel libyaml-devel java-11-openjdk-devel
#基础软件
dnf install libxml2-devel libcurl-devel net-snmp-devel libevent-devel pcre2-devel -y
# 安装 PHP 8.3 及其 Web 扩展
dnf install php php-fpm php-mysqlnd php-gd php-bcmath php-mbstring php-xml php-ldap -y
# 安装数据库开发库和网络开发库
dnf install mariadb-devel mariadb libevent-devel pcre-devel libcurl-devel libxml2-devel -y

第二步:下载 Zabbix 源码

我们要下载 Zabbix 7.4 的源码包自行编译。

bash 复制代码
wget https://cdn.zabbix.com/zabbix/sources/stable/7.4/zabbix-7.4.0.tar.gz
tar -xzvf zabbix-7.4.0.tar.gz 
cd zabbix-7.4.0/

第三步:核心步骤------配置并禁用 IPMI

这是解决你报错的关键。通过 --without-openipmi 参数,让 Zabbix 不再去寻找系统里不存在的 libOpenIPMI.so

bash 复制代码
./configure --prefix=/usr/local/zabbix \
--enable-server \
--enable-agent \
--enable-agent2 \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-libxml2 \
--with-openssl \
--with-ssh2 \
--with-unixodbc \
--with-ldap \
--with-libyaml \
--with-libevent \
--with-pcre2 \
--enable-ipv6 \
--without-openipmi

第四步:执行编译与安装

bash 复制代码
# 使用 -j 加上你的 CPU 核心数来加快编译速度
make -j$(nproc)

# 执行安装
make install

第五步:手动配置 Web 前端 (PHP 8.3)

bash 复制代码
# 1. 创建 Web 访问目录
mkdir -p /var/www/html/zabbix

# 2. 拷贝源码包中的前端文件 (你在 zabbix-7.4.0 目录下执行)
cp -a ui/* /var/www/html/zabbix/

# 3. 设置权限(非常重要,否则 PHP 无法写入配置)
chown -R apache:apache /var/www/html/zabbix

第六步:初始化数据库 (Zabbix 7.4.0 结构)

第一步:安装并启动 MariaDB

bash 复制代码
# 安装 MariaDB 服务器和客户端
dnf install mariadb-server mariadb -y

# 启动服务并设置开机自启
systemctl enable --now mariadb

第二步:数据库安全初始化

执行以下命令,为数据库的 root 用户设置密码(注意:这是数据库的总管理员密码,不是系统 root 密码):

bash 复制代码
mysql_secure_installation

提示 Enter current password for root: 直接回车。

提示 Switch to unix_socket authentication: 输入 n。

提示 Change the root password?: 输入 y,然后设置你的数据库管理员密码。

后续所有提示(删除匿名用户、禁止远程 root 登录等)全部输入 y。

第三步:为 Zabbix 创建专用库和用户

现在登录数据库,手动创建 Zabbix 运行所需的"房间":

bash 复制代码
# 使用你刚才设置的 root 密码登录
mysql -u root -p

进入数据库命令行后,逐行输入以下 SQL 语句:

bash 复制代码
-- 1. 创建数据库,指定字符集(Zabbix 7.4 必须用 utf8mb4)
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

-- 2. 创建用户 'zabbix',密码设置为 'password' (你可以换成自己的)
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password';

-- 3. 给用户授权
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';

-- 4. 允许函数创建(导入数据必开)
SET GLOBAL log_bin_trust_function_creators = 1;

-- 5. 退出
QUIT;

第四步:导入数据

bash 复制代码
cd database/mysql

# 按照顺序导入
mysql -uzabbix -p zabbix < schema.sql
mysql -uzabbix -p zabbix < images.sql
mysql -uzabbix -p zabbix < data.sql

第五步:关联 Zabbix Server 与数据库

bash 复制代码
# 找到以下行并修改(可以用 vi 手动改,也可以用下面命令)
sed -i 's/# DBPassword=/DBPassword=password/g' /usr/local/zabbix/etc/zabbix_server.conf

第七步:创建 Zabbix 运行用户

为了安全,Zabbix 不允许以 root 身份运行:

bash 复制代码
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

第八步.:准备 Systemd 启动脚本

为了方便管理,我们需要手动创建两个服务文件,因为源码编译不会自动创建它们。

创建 Server 服务 (/etc/systemd/system/zabbix-server.service):

bash 复制代码
[Unit]
Description=Zabbix Server
After=syslog.target network.target mariadb.service

[Service]
Type=forking
User=zabbix
Group=zabbix
ExecStart=/usr/local/zabbix/sbin/zabbix_server
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=10s

[Install]
WantedBy=multi-user.target

创建 Agent 服务 (/etc/systemd/system/zabbix-agent.service):

bash 复制代码
[Unit]
Description=Zabbix Agent
After=syslog.target network.target

[Service]
Type=forking
User=zabbix
Group=zabbix
ExecStart=/usr/local/zabbix/sbin/zabbix_agentd
Restart=always
RestartSec=10s

[Install]
WantedBy=multi-user.target

第九步.开放核心端口

请直接在 Zabbix Server 机器上执行以下命令:

bash 复制代码
# 1. 开放 HTTP (80/tcp),用于你从浏览器访问 Web 界面
firewall-cmd --permanent --add-service=http

# 2. 开放 Zabbix Server 端口 (10051/tcp),用于接收 8 台 Builder 的数据
firewall-cmd --permanent --add-port=10051/tcp

# 3. 开放 Zabbix Agent 端口 (10050/tcp),如果你也要监控 Server 本身
firewall-cmd --permanent --add-port=10050/tcp

# 4. 重新加载配置,使修改生效
firewall-cmd --reload

第十步:修改关键参数

bash 复制代码
# 修改执行时间限制 (解决图片中最后两个红字报错)
sed -i 's/max_execution_time = 30/max_execution_time = 300/g' /etc/php.ini
sed -i 's/max_input_time = 60/max_input_time = 300/g' /etc/php.ini

# 修改 POST 数据大小 (解决图片中第一个红字报错)
sed -i 's/post_max_size = 8M/post_max_size = 16M/g' /etc/php.ini

# 建议顺便把内存限制也调大一点(防止以后监控项多了页面卡顿)
sed -i 's/memory_limit = 128M/memory_limit = 256M/g' /etc/php.ini

第十一步. 启动并开启 Web 向导

bash 复制代码
# 刷新服务列表
systemctl daemon-reload

# 启动服务
systemctl enable --now zabbix-server zabbix-agent httpd php-fpm

现在,你可以通过浏览器访问:http://你的服务器IP/zabbix 了。

相关推荐
CodeGolang8 小时前
Docker容器化部署Zabbix监控系统完整指南
docker·容器·zabbix
码上上班10 天前
一文学会zabbix
zabbix
乐维_lwops10 天前
利用Zabbix监控指定IP列表的ping
网络·tcp/ip·zabbix
何以不说话17 天前
zabbix部署及nginx的监控
运维·nginx·zabbix
成为你的宁宁18 天前
【Zabbix + 睿象云实现电话告警(附图文教程):从监控项与触发器配置到睿象云电话报警通道部署全流程】
zabbix·电话报警
成为你的宁宁18 天前
【Zabbix 监控 Redis 实战教程(附图文教程):从 Zabbix-Server 部署、Agent2 安装配置到自带监控模板应用全流程】
数据库·redis·zabbix
释怀不想释怀24 天前
Zabbix框架(含相关的面试题)
zabbix
释怀不想释怀24 天前
Zabbix(安装模式)
运维·云原生·zabbix
何以不说话24 天前
记录一下学习日常⑨(ansible、Open-V、zabbix)
学习·ansible·zabbix