openEuler 22.03 离线源码编译 Zabbix 7.0.27 完整最终整合手册

openEuler 22.03 离线源码编译 Zabbix 7.0.27 完整最终整合手册

一、外网统一打包全套离线资源(一次性补齐所有依赖,不再反复拷包)

1. 构建目录

bash 复制代码
mkdir -p /zabbix_offline/{rpm,zabbix_src}
cd /zabbix_offline/rpm

2. 批量下载编译环境+所有devel依赖+数据库+Nginx+PHP整套rpm

bash 复制代码
# 编译工具链
dnf groupinstall "Development Tools" --downloadonly --downloaddir=/zabbix_offline/rpm -y

# Zabbix编译必备所有开发包
dnf install -y --downloadonly --downloaddir=/zabbix_offline/rpm \
mysql-devel libevent-devel pcre-devel openssl-devel libcurl-devel libxml2-devel \
net-snmp-devel OpenIPMI-devel libssh2-devel fping pkgconfig unzip zlib-devel libzstd-devel

# MySQL、Nginx、PHP运行环境(前端网页依赖)
dnf install -y --downloadonly --downloaddir=/zabbix_offline/rpm \
mysql-server mysql nginx php-fpm php-mysqlnd php-bcmath php-mbstring php-gd php-xml php-ldap php-openssl

3. 下载Zabbix源码包

bash 复制代码
cd /zabbix_offline/zabbix_src
wget https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.0.27.tar.gz

4. 整体打包传输内网

bash 复制代码
cd /zabbix_offline
tar -zcvf zabbix7_oe2203_full_offline.tar.gz rpm/ zabbix_src/

将压缩包上传至内网服务器 /root

二、内网离线部署全程操作(无外网)

步骤1:解压+批量安装全部rpm依赖

bash 复制代码
cd /root
tar -zxvf zabbix7_oe2203_full_offline.tar.gz
cd zabbix_offline/rpm

# 一次性批量解决所有依赖链
dnf localinstall *.rpm -y --nogpgcheck --disablerepo=*

步骤2:MySQL8初始化+重置root密码(适配openEuler无mysqld_safe)

bash 复制代码
systemctl start mysqld
systemctl enable mysqld

# 临时跳过权限校验启动MySQL
systemctl stop mysqld
systemctl edit mysqld

粘贴内容:

ini 复制代码
[Service]
ExecStart=/usr/libexec/mysqld --basedir=/usr --skip-grant-tables --skip-networking

保存退出,重载启动:

bash 复制代码
systemctl daemon-reload
systemctl start mysqld

免密登录改密码:

bash 复制代码
mysql -u root
sql 复制代码
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@123456';
exit;

恢复MySQL正常启动模式:

bash 复制代码
systemctl revert mysqld
systemctl daemon-reload
systemctl restart mysqld

步骤3:创建Zabbix专属数据库+账号授权

bash 复制代码
mysql -uroot -pRoot@123456
sql 复制代码
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER zabbix@localhost IDENTIFIED BY 'Zabbix@Pass123';
GRANT ALL ON zabbix.* TO zabbix@localhost;
SET GLOBAL log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;
exit;

步骤4:源码编译安装Zabbix Server+Agent

bash 复制代码
cd /root/zabbix_offline/zabbix_src
tar -zxvf zabbix-7.0.27.tar.gz
cd zabbix-7.0.27

# 创建运行专用系统用户
groupadd --system zabbix
useradd --system -g zabbix -d /usr/local/zabbix -s /sbin/nologin zabbix

# configure完整参数(所有依赖已补齐,一次通过)
./configure \
--prefix=/usr/local/zabbix \
--enable-server \
--enable-agent \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-libxml2 \
--with-openipmi \
--with-ssh2 \
--with-openssl \
--enable-ipv6

# 编译+安装
make -j$(nproc)
make install

步骤5:导入数据库初始化SQL表结构

bash 复制代码
mysql -uzabbix -pZabbix@Pass123 zabbix < database/mysql/schema.sql
mysql -uzabbix -pZabbix@Pass123 zabbix < database/mysql/images.sql
mysql -uzabbix -pZabbix@Pass123 zabbix < database/mysql/data.sql

# 恢复MySQL函数创建权限
mysql -uroot -pRoot@123456 -e "SET GLOBAL log_bin_trust_function_creators = 0;"

步骤6:修改Zabbix核心配置文件

① zabbix_server.conf
bash 复制代码
mkdir -p /usr/local/zabbix/{logs,var}
chown -R zabbix:zabbix /usr/local/zabbix

vim /usr/local/zabbix/etc/zabbix_server.conf
ini 复制代码
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix@Pass123
LogFile=/usr/local/zabbix/logs/zabbix_server.log
PidFile=/usr/local/zabbix/var/zabbix_server.pid
# RuntimeControlSocket=/usr/local/zabbix/var/zabbix_server.sock
② zabbix_agentd.conf
bash 复制代码
vim /usr/local/zabbix/etc/zabbix_agentd.conf
ini 复制代码
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=oe2203-zabbix
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
PidFile=/usr/local/zabbix/var/zabbix_agentd.pid
# RuntimeControlSocket=/usr/local/zabbix/var/zabbix_agentd.sock

步骤7:编写标准systemd服务单元(适配Zabbix7无-d参数、前台常驻)

zabbix-server.service
ini 复制代码
[Unit]
Description=Zabbix Server
After=network.target mysqld.target

[Service]
Type=simple
User=zabbix
Group=zabbix
ExecStart=/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf --foreground
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
zabbix-agentd.service
ini 复制代码
[Unit]
Description=Zabbix Agent
After=network.target

[Service]
Type=simple
User=zabbix
Group=zabbix
ExecStart=/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf --foreground
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

写入路径:/etc/systemd/system/

步骤8:清理残留锁文件、启动服务

bash 复制代码
# 杀掉残留进程、删除套接字/pid锁
pkill -f zabbix_server
pkill -f zabbix_agentd
rm -f /tmp/zabbix_*.sock /tmp/zabbix_*.pid

# 重载systemd并开机自启
systemctl daemon-reload
systemctl enable --now zabbix-server zabbix-agentd
systemctl status zabbix-server zabbix-agentd

正常显示 active (running) 即为服务部署成功。

三、部署Web前端(Nginx+PHP-FPM)

1. 部署网页代码

bash 复制代码
cp -r ui /usr/share/nginx/html/zabbix
chown -R nginx:nginx /usr/share/nginx/html/zabbix

2. 修改PHP时区配置

bash 复制代码
vim /etc/php.ini
ini 复制代码
max_execution_time = 300
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
max_input_time = 300
date.timezone = Asia/Shanghai

3. Nginx站点配置

bash 复制代码
vim /etc/nginx/conf.d/zabbix.conf
nginx 复制代码
server {
    listen 80;
    server_name localhost;
    root /usr/share/nginx/html/zabbix;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
给 socket 文件权限(openEuler 必做)
复制代码
systemctl restart php-fpm nginx
chown nginx:nginx /run/php-fpm/www.sock
chmod 660 /run/php-fpm/www.sock
nginx -t && systemctl reload nginx
curl http://127.0.0.1

4. 启动Web服务+放行防火墙端口

bash 复制代码
systemctl enable --now nginx php-fpm

firewall-cmd --add-service=http --permanent
firewall-cmd --add-port={10050,10051}/tcp --permanent
firewall-cmd --reload

四、浏览器初始化安装

  1. 访问地址:http://内网IP
  2. 环境自检全部OK,下一步;
  3. 数据库填写:
    • 主机:localhost
    • 库名:zabbix
    • 用户:zabbix
    • 密码:Zabbix@Pass123
  4. 自定义站点名称,时区选择 Asia/Shanghai
  5. 自动生成配置文件,安装完成;
  6. 默认登录账号:Admin,密码:zabbix
  7. 后台添加本机主机 oe2203-zabbix,消除agent主机不存在告警。

安装时提示收到创建配置文件,下载后复制即可 cp zabbix.conf.php /usr/share/nginx/html/zabbix/conf/zabbix.conf.php

五、排坑汇总

  1. configure反复报xxx library not found :外网未一次性下载全部*-devel,统一批量下载全套rpm再内网批量安装;
  2. OpenIPMI包名错误 :openEuler包名为大写OpenIPMI-devel,小写无法检索;
  3. systemd Type=forking超时退出 :Zabbix7不再支持-d后台参数,改用Type=simple + --foreground前台常驻;
  4. rtc服务已运行、套接字残留锁 :pkill杀残留进程,删除/tmpsock/pid,固定sock/pid到安装目录var下永久解决;
  5. MySQL无mysqld_safe :用systemctl edit临时追加启动参数跳过授权表重置密码;
  6. agent提示主机未找到:Web后台手动添加对应主机名即可,不影响服务运行。

六、常用运维路径速查

  • 安装目录:/usr/local/zabbix
  • 配置文件:/usr/local/zabbix/etc/
  • 日志目录:/usr/local/zabbix/logs/
  • PID/套接字:/usr/local/zabbix/var/
  • Web网页:/usr/share/nginx/html/zabbix
  • 实时查看日志:tail -f /usr/local/zabbix/logs/zabbix_server.log

=================================================================================================

杀残留进程+删锁文件

  • pkill -f zabbix_server
  • pkill -f zabbix_agentd
  • rm -f /tmp/zabbix_.sock /tmp/zabbix_.pid

重载并启动

  • systemctl daemon-reload
  • systemctl restart zabbix-server zabbix-agentd
  • systemctl status zabbix-server zabbix-agentd
相关推荐
AC赳赳老秦1 小时前
OpenClaw + 云数据库运维:自动备份、扩容、迁移 RDS/MySQL 云数据库
运维·开发语言·数据库·人工智能·python·mysql·openclaw
向日葵.1 小时前
linux & qnx & git 命令 1
linux·运维·服务器
MXsoft6182 小时前
**非Agent部署:网络设备分钟级纳管的技术解析**
运维·自动化
XLYcmy2 小时前
一个基于 Python 的轻量级 LLM(大语言模型)API 客户端程序:从API交互到LLM应用架构
服务器·python·ai·llm·prompt·agent·token
艾德金的溪2 小时前
windows安装CC Switch
运维·ai
2023自学中2 小时前
Linux 内核与用户空间 内存管理详解(堆与栈篇)
linux·嵌入式·内存·开发板
极客先躯2 小时前
高级java每日一道面试题-2026年02月09日-实战篇[Docker]-Docker 容器有哪些安全风险?如何缓解?
java·运维·网络·安全·docker·容器
yuanzhengme2 小时前
Ollama【部署 07】搭建本地智能体的简单说明(局域网离线部署Ollama+模型迁移+Docker部署AnythingLLM)
运维·docker·容器·大模型·ollama·本地智能体
似水এ᭄往昔2 小时前
【Linux系统编程】--虚拟地址空间
linux·服务器