Goal is to have a zabbix proxy in docker container running under Ubuntu.
Solution: adjust following script to your needs. run it and get zabbix proxy in container. simple!
Script:
#!/bin/sh
# Update OS and install necessary packages
apt-get update
apt-get install -y ca-certificates curl wget
# Install Docker GPG key
wget -O /etc/apt/keyrings/docker.asc https://download.docker.com/linux/ubuntu/gpg
chmod a+r /etc/apt/keyrings/docker.asc
# Install Docker repo
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
# Set up Zabbix repository
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu24.04_all.deb
dpkg -i zabbix-release_6.4-1+ubuntu24.04_all.deb
apt update
# Install Zabbix agent and Docker engine
apt install -y zabbix-agent2 zabbix-agent2-plugin-* docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Configure Zabbix agent
cat << EOF > /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=your_zabbix_server.ca
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agent2.d/*.conf
PluginSocket=/run/zabbix/agent.plugin.sock
ControlSocket=/run/zabbix/agent.sock
Include=/etc/zabbix/zabbix_agent2.d/plugins.d/*.conf
EOF
# Add user zabbix to Docker group
usermod -aG docker zabbix
# Restart Zabbix agent
systemctl restart zabbix-agent2
# Create shell script for start/stop container
cat << EOF > /opt/zabbix-proxy/restart_proxy.sh
#!/bin/sh
docker compose -f /opt/zabbix-proxy/docker-compose.yml down
docker compose -f /opt/zabbix-proxy/docker-compose.yml up -d
EOF
chmod +x /opt/zabbix-proxy/restart_proxy.sh
# Set up Docker for zabbix-proxy
cat << EOF > /opt/zabbix-proxy/docker-compose.yml
services:
zabbix_proxy:
image: zabbix/zabbix-proxy-sqlite3:ubuntu-6.0.12
restart: always
environment:
- ZBX_SERVER_HOST=your_zabbix_server.ca
- ZBX_HOSTNAME=zabbix_proxy_host.ca
- ZBX_CONFIGFREQUENCY=60
network_mode: host
EOF
# Start zabbix-proxy
docker compose -f /opt/zabbix-proxy/docker-compose.yml up -d
# Clean up
rm zabbix-release_6.4-1+ubuntu24.04_all.deb
rm install.sh
echo
echo ATTN!!! In zabbix-proxy2 config add primary/main interface of VM to "server" section and restart zabbix-agent2 service!