zabbix/zabbix-docker

zabbix-server-pgsql run failed

qinweizhen1 opened this issue · 6 comments

when I buid image by zabbix-docker-6.4\Dockerfiles\build-pgsql\ubuntu\DockerFile.
try run image
error info:/usr/sbin/zabbix_server: error while loading shared libraries: libnetsnmp.so.35: cannot open shared object file: No such file or directory

how did you build? Please share steps.

step 1:I build and make in wsl(ubuntu 20.04) with the zabbix-server source code(6.4.12): ./configure --datadir=/usr/lib --libdir=/usr/lib/zabbix --prefix=/usr --sysconfdir=/etc/zabbix --enable-agent --enable-agent2 --enable-ipv6 --enable-proxy --enable-server --enable-webservice --with-ldap --with-libcurl --with-libmodbus --with-libpcre2 --with-libxml2 --with-net-snmp --with-openipmi --with-openssl --with-postgresql --with-ssh --with-unixodbc --enable-java --silent &&\
make
step 2: build image :docker build -t zabbix-server . Dockerfile Info :

ARG MAJOR_VERSION=6.4
ARG ZBX_VERSION=${MAJOR_VERSION}.12

FROM ubuntu:jammy

ARG MAJOR_VERSION
ARG ZBX_VERSION
ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git

ENV TERM=xterm
ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES}
MIBDIRS=/var/lib/mibs/ietf:/var/lib/mibs/iana:/usr/share/snmp/mibs:/var/lib/zabbix/mibs MIBS=+ALL
NMAP_PRIVILEGED=""

LABEL org.opencontainers.image.authors="Alexey Pustovalov alexey.pustovalov@zabbix.com"
org.opencontainers.image.description="Zabbix server with PostgreSQL database support"
org.opencontainers.image.documentation="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers"
org.opencontainers.image.licenses="GPL v2.0"
org.opencontainers.image.source="${ZBX_SOURCES}"
org.opencontainers.image.title="Zabbix server (PostgreSQL)"
org.opencontainers.image.url="https://zabbix.com/"
org.opencontainers.image.vendor="Zabbix LLC"
org.opencontainers.image.version="${ZBX_VERSION}"

STOPSIGNAL SIGTERM

COPY ["src/zabbix_server/zabbix_server", "/usr/sbin/zabbix_server"]
COPY ["src/zabbix_get/zabbix_get", "/usr/bin/zabbix_get"]
COPY ["src/zabbix_sender/zabbix_sender", "/usr/bin/zabbix_sender"]
COPY ["conf/zabbix_server.conf", "/etc/zabbix/zabbix_server.conf"]
COPY ["database/postgresql/create_server.sql.gz", "/usr/share/doc/zabbix-server-postgresql/create.sql.gz"]
COPY ["database/postgresql/timescaledb/schema.sql", "/usr/share/doc/zabbix-server-postgresql/timescaledb.sql"]
COPY ["database/postgresql/timescaledb/option-patches/with-compression/.sql", "/usr/share/doc/zabbix-server-postgresql/option-patches/with-compression/"]
COPY ["database/postgresql/timescaledb/option-patches/without-compression/
.sql", "/usr/share/doc/zabbix-server-postgresql/option-patches/without-compression/"]

RUN --mount=type=cache,target=/var/lib/apt/,sharing=locked
set -eux &&
echo "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d &&
INSTALL_PKGS="bash
tini
traceroute
nmap
tzdata
ca-certificates
iputils-ping
traceroute
fping
libcurl4
libevent-2.1
libevent-pthreads-2.1
libopenipmi0
libpcre2-8-0
libpq5
libsnmp40
libssh-4
libssl3
libxml2
postgresql-client
snmp-mibs-downloader
gzip
unixodbc" &&
apt-get -y update &&
DEBIAN_FRONTEND=noninteractive apt-get -y
--no-install-recommends install
${INSTALL_PKGS} &&
groupadd
--system
--gid 1995
zabbix &&
useradd
--system
--comment "Zabbix monitoring system"
-g zabbix
-G dialout
--uid 1997
--shell /sbin/nologin
--home-dir /var/lib/zabbix/
zabbix &&
chgrp zabbix /usr/bin/nmap &&
setcap cap_net_raw+eip /usr/bin/nmap &&
mkdir -p /etc/zabbix &&
mkdir -p /var/lib/zabbix &&
mkdir -p /usr/lib/zabbix/alertscripts &&
mkdir -p /usr/lib/zabbix/dbscripts &&
mkdir -p /var/lib/zabbix/dbscripts &&
mkdir -p /var/lib/zabbix/enc &&
mkdir -p /var/lib/zabbix/export &&
mkdir -p /usr/lib/zabbix/externalscripts &&
mkdir -p /var/lib/zabbix/mibs &&
mkdir -p /var/lib/zabbix/modules &&
mkdir -p /var/lib/zabbix/snmptraps &&
mkdir -p /var/lib/zabbix/ssh_keys &&
mkdir -p /var/lib/zabbix/ssl &&
mkdir -p /var/lib/zabbix/ssl/certs &&
mkdir -p /var/lib/zabbix/ssl/keys &&
mkdir -p /var/lib/zabbix/ssl/ssl_ca &&
mkdir -p /usr/share/doc/zabbix-server-postgresql &&
chown --quiet -R zabbix:root /etc/zabbix/ /var/lib/zabbix/ &&
chgrp -R 0 /etc/zabbix/ /var/lib/zabbix/ &&
chmod -R g=u /etc/zabbix/ /var/lib/zabbix/ &&
apt-get -y autoremove &&
apt-get -y clean

EXPOSE 10051/TCP

WORKDIR /var/lib/zabbix

VOLUME ["/var/lib/zabbix/snmptraps", "/var/lib/zabbix/export"]

COPY ["docker-entrypoint.sh", "/usr/bin/"]

ENTRYPOINT ["/usr/bin/tini", "--", "/usr/bin/docker-entrypoint.sh"]

USER 1997

CMD ["/usr/sbin/zabbix_server", "--foreground", "-c", "/etc/zabbix/zabbix_server.conf"]

step 3: run image -- docker run -e DB_SERVER_HOST=*** -e POSTGRES_USER=*** -e POSTGRES_PASSWORD=*** -p 10051:10051 zabbix-server

step 4: show docker log:

2024-03-01 11:53:52 ** Updating '/etc/zabbix/zabbix_server.conf' parameter "TLSKeyFile": ''...removed
2024-03-01 11:53:52 ** Updating '/etc/zabbix/zabbix_server.conf' parameter "TLSPSKIdentity": ''...removed
2024-03-01 11:53:52 ** Updating '/etc/zabbix/zabbix_server.conf' parameter "TLSPSKFile": ''...removed
2024-03-01 11:53:52 ** Updating '/etc/zabbix/zabbix_server.conf' parameter "ServiceManagerSyncFrequency": ''...removed
2024-03-01 11:53:52 ** Updating '/etc/zabbix/zabbix_server.conf' parameter "HANodeName": ''...removed
2024-03-01 11:53:52 ** Updating '/etc/zabbix/zabbix_server.conf' parameter "NodeAddress": ''...removed
2024-03-01 11:53:52 ** Updating '/etc/zabbix/zabbix_server.conf' parameter "User": 'zabbix'...added
2024-03-01 11:53:52 /usr/sbin/zabbix_server: error while loading shared libraries: libnetsnmp.so.35: cannot open shared object file: No such file or directory

20.04 is not ubuntu:jammy. You build server on old version of Ubuntu...

zabbix-server source code is can not build in ubuntu:20.04??, If I change Dockfile base image to FROM ubuntu:20.04, is can work??

You can, but in this case you need to use appropriate Dockerfile for final image. It must corresponding your system where built sources.

it Can work normally, thank you very much