使用的是zabbix7.0官方源 el9以下是报错信息
![]()
网上说net-snmp版本太低导致 但是目前openEuler官方仓库最高就是net-snmp-libs-5.9.3-5.oe2403sp3.x86_64
net-snmp-5.9.3-5.oe2403sp3.x86_64
请问大家有部署成功的吗
使用的是zabbix7.0官方源 el9以下是报错信息
![]()
网上说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生成,仅供参考:
| 项目 | 建议操作 |
|---|---|
| 报错原因 | net-snmp-libs 版本不兼容导致 symbol 缺失 |
| 根本解法 | 使用 CentOS 9 版本 net-snmp-libs 替代 openEuler 自带版本 |
| 推荐部署方式 | 使用 Docker 容器化部署 Zabbix |
| 官方支持 | Zabbix 未提供 openEuler 专用包 |
| 是否可解决 |
根据您提供的报错信息和环境描述,您遇到的问题是典型的 symbol lookup error: undefined symbol: usAes256CbcPrivProtocol,这表明 Zabbix Server 与系统中的 net-snmp-libs 库版本不兼容。虽然您的系统上已安装了 openEuler 官方仓库提供的最新版本 net-snmp-libs-5.9.3,但这并非 Zabbix 所需的兼容版本。
/usr/sbin/zabbix_server: symbol lookup error: undefined symbol: usAes256CbcPrivProtocol
此错误表明:
usAes256CbcPrivProtocol 的符号(函数/变量)。net-snmp-libs 动态库(由 net-snmp-libs-5.9.3-5.ce2403sp3.x86_64 提供)不包含该符号,或其符号表结构已变更。net-snmp-libs 版本,与 openEuler 的版本存在 ABI 不兼容。关键思路:强制使用 CentOS 9(el9) 的
net-snmp-libs版本替代 openEuler 自带版本。
sudo dnf remove net-snmp-libs net-snmp -y
注意:不要完全移除所有 SNMP 组件,仅需替换
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
说明:
- 使用
vault.centos.org是因为 CentOS 9 Stream 主源可能已归档。gpgcheck=0用于跳过签名验证(临时使用)。priority=95确保优先级高于默认源。
net-snmp-libssudo dnf install net-snmp-libs --allowerasing -y
![]()
--allowerasing允许 DNF 删除冲突包以满足依赖。
成功后应安装如下版本(示例):
net-snmp-libs-1:5.9.1-1.el9.x86_64
如果您之前已安装,请先卸载并清理缓存:
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
注意:这里继续使用 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 错误,即表示修复成功。
避免宿主机依赖冲突的最佳方式是容器化部署。
示例 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
优势:完全隔离系统依赖,部署快速、稳定。
el9 包存在风险。来自社区用户 hnpyhc 在 欧拉 24.03-sp1 上成功部署 Zabbix 7.0 LTS:
“感谢 CSDN 博主 [shen12138] 提供思路:是
net-snmp-libs版本问题,需要添加 CentOS9 软件源,安装 el9 版本即可解决。”
类似问题在多个论坛被记录,解决方案一致:降级/更换为 CentOS 9 的 net-snmp-libs。
| 项目 | 建议操作 |
|---|---|
| 报错原因 | net-snmp-libs 版本不兼容导致 symbol 缺失 |
| 根本解法 | 使用 CentOS 9 版本 net-snmp-libs 替代 openEuler 自带版本 |
| 推荐部署方式 | 使用 Docker 容器化部署 Zabbix |
| 官方支持 | Zabbix 未提供 openEuler 专用包 |
| 是否可解决 |
按照上述步骤操作后,您将能够在 openEuler 24.03 LTS 上成功运行 Zabbix 7.0 LTS。