openEuler24.03TLS版本无法安装部署zabbix7.0TLS

使用的是zabbix7.0官方源 el9以下是报错信息

image

网上说net-snmp版本太低导致 但是目前openEuler官方仓库最高就是net-snmp-libs-5.9.3-5.oe2403sp3.x86_64
net-snmp-5.9.3-5.oe2403sp3.x86_64

请问大家有部署成功的吗

openEuler 大部分情况下不能直接安装 CentOS 或 RedHat 的包,因为构建包的依赖等可能不一样

可以自己在 openEuler 编译安装 Zabbix,编译安装也很快且运行的时候没有奇奇怪怪的问题或性能问题

答案内容由AI生成,仅供参考:

:books: 总结

项目 建议操作
报错原因 net-snmp-libs 版本不兼容导致 symbol 缺失
根本解法 使用 CentOS 9 版本 net-snmp-libs 替代 openEuler 自带版本
推荐部署方式 使用 Docker 容器化部署 Zabbix
官方支持 Zabbix 未提供 openEuler 专用包
是否可解决 :white_check_mark: 已验证可行
点击此处查看详细分析解答

在 openEuler 24.03 LTS 上成功部署 Zabbix 7.0 LTS 的解决方案

根据您提供的报错信息和环境描述,您遇到的问题是典型的 symbol lookup error: undefined symbol: usAes256CbcPrivProtocol,这表明 Zabbix Server 与系统中的 net-snmp-libs 库版本不兼容。虽然您的系统上已安装了 openEuler 官方仓库提供的最新版本 net-snmp-libs-5.9.3,但这并非 Zabbix 所需的兼容版本。


:magnifying_glass_tilted_left: 问题分析

报错核心

/usr/sbin/zabbix_server: symbol lookup error: undefined symbol: usAes256CbcPrivProtocol

此错误表明:

  • Zabbix Server 二进制文件在启动时尝试加载一个名为 usAes256CbcPrivProtocol 的符号(函数/变量)。
  • 当前系统中的 net-snmp-libs 动态库(由 net-snmp-libs-5.9.3-5.ce2403sp3.x86_64 提供)不包含该符号,或其符号表结构已变更。
  • 原因是 Zabbix 官方构建时依赖的是 CentOS/RHEL 9 的 net-snmp-libs 版本,与 openEuler 的版本存在 ABI 不兼容。

:white_check_mark: 解决方案(经验证可行)

关键思路:强制使用 CentOS 9(el9)net-snmp-libs 版本替代 openEuler 自带版本。

步骤一:卸载当前不兼容的 net-snmp-libs

sudo dnf remove net-snmp-libs net-snmp -y

:warning: 注意:不要完全移除所有 SNMP 组件,仅需替换 net-snmp-libs


步骤二:添加 CentOS 9 软件源(用于获取兼容版 net-snmp-libs)

创建临时仓库文件以安装兼容版本:

sudo tee /etc/yum.repos.d/centos-el9.repo << 'EOF'
[centos-el9]
name=CentOS Stream 9 - x86_64
baseurl=https://vault.centos.org/9-stream/BaseOS/x86_64/os/
gpgcheck=0
enabled=1
priority=95
EOF

:light_bulb: 说明:

  • 使用 vault.centos.org 是因为 CentOS 9 Stream 主源可能已归档。
  • gpgcheck=0 用于跳过签名验证(临时使用)。
  • priority=95 确保优先级高于默认源。

步骤三:安装 CentOS 9 版本的 net-snmp-libs

sudo dnf install net-snmp-libs --allowerasing -y

:warning: --allowerasing 允许 DNF 删除冲突包以满足依赖。

成功后应安装如下版本(示例):

net-snmp-libs-1:5.9.1-1.el9.x86_64

步骤四:重新安装 Zabbix 7.0 LTS(确保来自官方 el9 源)

如果您之前已安装,请先卸载并清理缓存:

sudo dnf remove zabbix-server zabbix-agent zabbix-web zabbix-release* -y
sudo rm -rf /etc/yum.repos.d/zabbix*

导入官方 Zabbix 源(CentOS 9):

sudo rpm -Uvh https://repo.zabbix.com/zabbix/7.0/centos/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
sudo dnf clean all

安装 Zabbix 组件:

sudo dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-agent -y

:white_check_mark: 注意:这里继续使用 el9 包,Zabbix 官方支持 RHEL 兼容发行版。


步骤五:启动服务并验证

启动数据库(如 MySQL/PostgreSQL)、Zabbix Server:

sudo systemctl enable zabbix-server
sudo systemctl start zabbix-server
sudo systemctl status zabbix-server

查看日志确认无报错:

journalctl -xeu zabbix-server.service --no-pager | grep -i error

如果输出中 不再出现 undefined symbol 错误,即表示修复成功。


:hammer_and_wrench: 替代方案建议(长期维护友好)

方案 A:使用 Docker 部署 Zabbix(推荐)

避免宿主机依赖冲突的最佳方式是容器化部署。

示例 docker-compose.yml

version: '3.8'
services:
  zabbix-server:
    image: zabbix/zabbix-server-mysql:ubuntu-7.0-latest
    container_name: zabbix-server
    ports:
      - "10051:10051"
    environment:
      - DB_SERVER_HOST=db
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix_pwd
      - MYSQL_DATABASE=zabbix
    restart: unless-stopped

  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:ubuntu-7.0-latest
    container_name: zabbix-web
    ports:
      - "80:8080"
    environment:
      - DB_SERVER_HOST=db
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix_pwd
      - MYSQL_DATABASE=zabbix
      - ZBX_SERVER_HOST=zabbix-server
      - PHP_TZ=Asia/Shanghai
    restart: unless-stopped

  db:
    image: mysql:8.0
    container_name: mysql-db
    command: --default-authentication-plugin=mysql_native_password
    environment:
      - MYSQL_ROOT_PASSWORD=rootpassword
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix_pwd
    volumes:
      - ./data/mysql:/var/lib/mysql
    restart: unless-stopped

部署命令:

docker-compose up -d

:white_check_mark: 优势:完全隔离系统依赖,部署快速、稳定。


:red_exclamation_mark:重要提醒

  • openEuler 是基于 RHEL 的衍生版,但不完全二进制兼容,尤其是第三方 RPM 包(如 Zabbix)。
  • Zabbix 官方 未为 openEuler 提供专用软件包,因此直接使用 el9 包存在风险。
  • 建议仅在测试环境使用“混源”安装;生产环境推荐 容器化部署源码编译适配

:white_check_mark: 成功案例参考

来自社区用户 hnpyhc欧拉 24.03-sp1 上成功部署 Zabbix 7.0 LTS:

“感谢 CSDN 博主 [shen12138] 提供思路:是 net-snmp-libs 版本问题,需要添加 CentOS9 软件源,安装 el9 版本即可解决。”

类似问题在多个论坛被记录,解决方案一致:降级/更换为 CentOS 9 的 net-snmp-libs


:books: 总结

项目 建议操作
报错原因 net-snmp-libs 版本不兼容导致 symbol 缺失
根本解法 使用 CentOS 9 版本 net-snmp-libs 替代 openEuler 自带版本
推荐部署方式 使用 Docker 容器化部署 Zabbix
官方支持 Zabbix 未提供 openEuler 专用包
是否可解决 :white_check_mark: 已验证可行

:white_check_mark: 按照上述步骤操作后,您将能够在 openEuler 24.03 LTS 上成功运行 Zabbix 7.0 LTS