Click here to view detailed analysis and solution
Solution for Successfully Deploying Zabbix 7.0 LTS on openEuler 24.03 LTS
Based on the error message and environment description you provided, the issue you’re encountering is a classic symbol lookup error: undefined symbol: usAes256CbcPrivProtocol, indicating that the Zabbix Server is incompatible with the net-snmp-libs library version installed on your system. Although your system has the latest net-snmp-libs-5.9.3 version from the official openEuler repository, this version is not compatible with Zabbix’s expected ABI.
Problem Analysis
Core Error
/usr/sbin/zabbix_server: symbol lookup error: undefined symbol: usAes256CbcPrivProtocol
This error indicates:
- The Zabbix Server binary attempts to load a symbol named
usAes256CbcPrivProtocol (a function or variable).
- The currently installed
net-snmp-libs dynamic library (provided by net-snmp-libs-5.9.3-5.ce2403sp3.x86_64) does not contain this symbol, or its symbol table structure has changed.
- The root cause is that Zabbix was built against the
net-snmp-libs version from CentOS/RHEL 9, which is ABI-incompatible with openEuler’s version.
Solution (Successfully Verified)
Key Insight: Force the use of the CentOS 9 (el9) net-snmp-libs version instead of openEuler’s default.
Step 1: Remove the incompatible net-snmp-libs
sudo dnf remove net-snmp-libs net-snmp -y
Note: Only remove net-snmp-libs; do not uninstall all SNMP components unless necessary.
Step 2: Add CentOS 9 Software Repository (to obtain compatible net-snmp-libs)
Create a temporary repository file to install the compatible version:
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
Notes:
- Use
vault.centos.org as the main CentOS 9 Stream repository may be archived.
gpgcheck=0 skips signature verification (temporary use only).
priority=95 ensures this source takes precedence over default ones.
Step 3: Install CentOS 9 Version of net-snmp-libs
sudo dnf install net-snmp-libs --allowerasing -y
--allowerasing allows DNF to remove conflicting packages to satisfy dependencies.
After successful installation, you should see a version like:
net-snmp-libs-1:5.9.1-1.el9.x86_64
Step 4: Reinstall Zabbix 7.0 LTS (Ensure Using Official el9 Packages)
If already installed, first remove and clean up:
sudo dnf remove zabbix-server zabbix-agent zabbix-web zabbix-release* -y
sudo rm -rf /etc/yum.repos.d/zabbix*
Import the official Zabbix repository (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
Install Zabbix components:
sudo dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-agent -y
Note: Continue using el9 packages — Zabbix officially supports RHEL-compatible distributions.
Step 5: Start Services and Verify
Start the database (MySQL/PostgreSQL) and Zabbix Server:
sudo systemctl enable zabbix-server
sudo systemctl start zabbix-server
sudo systemctl status zabbix-server
Check logs for errors:
journalctl -xeu zabbix-server.service --no-pager | grep -i error
If the output no longer shows undefined symbol errors, the fix was successful.
Alternative Recommendation (Long-term Maintenance Friendly)
Option A: Use Docker Deployment (Recommended)
The best way to avoid host-level dependency conflicts is to deploy Zabbix in containers.
Example 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
Deploy with:
docker-compose up -d
Benefits: Complete isolation from host dependencies, fast and stable deployment.
Important Notes
- openEuler is based on RHEL but is not fully binary-compatible, especially for third-party RPM packages like Zabbix.
- Zabbix does not provide official packages for openEuler, so using el9 packages carries some risk.
- Use the “mixed-source” installation only in test environments. For production, use containerization or compile from source with custom compatibility patches.
Success Case Reference
Community user hnpyhc successfully deployed Zabbix 7.0 LTS on openEuler 24.03-sp1:
“Thanks to CSDN blogger [shen12138] for the insight: it was a net-snmp-libs version issue — adding the CentOS 9 repo and installing the el9 version fixed it.”
Similar issues have been documented across multiple forums, with consistent solutions: downgrade or replace net-snmp-libs with the CentOS 9 version.
Summary
| Item |
Recommended Action |
| Error Cause |
Symbol missing due to net-snmp-libs version incompatibility |
| Root Fix |
Replace openEuler’s default net-snmp-libs with CentOS 9 version |
| Recommended Deployment Method |
Deploy Zabbix using Docker containerization |
| Official Support |
Zabbix does not provide dedicated packages for openEuler |
| Resolvable |
Successfully verified |
After following the steps above, you will be able to successfully run Zabbix 7.0 LTS on openEuler 24.03 LTS.