Installazione di un proxy Zabbix
Docker
Usare questo docker-compose, che binda direttamente sull'IP dell'host docker attivando un proxy ATTIVO, che non ha bisogno di portmap dall'esterno:
services:
zabbix-proxy:
image: zabbix/zabbix-proxy-sqlite3:ubuntu-6.4-latest
network_mode: host
ports:
- 0.0.0.0:${ZABBIX_PROXY_PORT:-10051}:10051
environment:
- ZBX_PROXYMODE=0
- ZBX_HOSTNAME=proxy.example.com
- ZBX_SERVER_HOST=server.example.com
- ZBX_SERVER_PORT=10051
#- ZBX_ACTIVESERVERS
#- ZBX_METADATA=${ZBX_METADATA:-zabbix-proxy}
#- ZBX_TLSPSKIDENTITY=${ZBX_TLSPSKIDENTITY:-zabbix-proxy}
#- ZBX_TLSPSKFILE=${ZBX_TLSPSKFILE:-zabbix-proxy.psk}
#- ZBX_TLSCONNECT=${ZBX_TLSCONNECT:-psk}
#- ZBX_TLSACCEPT=${ZBX_TLSACCEPT:-psk}
#- ZBX_DEBUGLEVEL=${ZBX_DEBUGLEVEL:-1}
#- ZBX_STARTAGENTS=${ZBX_STARTAGENTS:-100}
#- ZBX_BUFFERSIZE=${ZBX_BUFFERSIZE:-1000}
#volumes:
#- ./enc:/var/lib/zabbix/enc:ro
stop_grace_period: 1m
restart: unless-stopped
- Definire sul server il proxy come Attivo e con nome proxy.example.com
- Definire nell'agent il server con l'IP dell'host docker
Riferimenti
Installazione Proxy
- ATTENZIONE: la versione del proxy deve essere uguale o superiore a quella del server. Un proxy di versione inferiore può parlare con un server di versione superiore, ma non può ricevere cambiamenti di configurazione o funzionare ex-novo
- Installare il pacchetto:
cd /tmp && \ wget http://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2+$(lsb_release -c -s)_all.deb && \ dpkg -i zabbix-release_4.0-2+$(lsb_release -c -s)_all.deb && \ apt-get update && \ sudo apt-get update && \ sudo apt-get install zabbix-proxy-sqlite3
- Preparare il database:
sudo mkdir -p /var/lib/zabbix/ sudo chown -R zabbix: /var/lib/zabbix/ zcat /usr/share/doc/zabbix-proxy-sqlite3/schema.sql.gz | sudo -u zabbix sqlite3 /var/lib/zabbix/zabbix_proxy.db
- Configurare:
sudoedit /etc/zabbix/zabbix_proxy.conf
ProxyMode=1 Server=zabbix.example.com Hostname=fqdn-proxy.example.com DBName=/var/lib/zabbix/zabbix_proxy.db
- Avviare il proxy
sudo systemctl enable zabbix-proxy.service sudo systemctl restart zabbix-proxy.service sudo systemctl status zabbix-proxy.service
- Abilitare in ingresso la porta tcp 10051 al proxy:
$IPTABLES -A INPUT -p tcp \
-s 1.2.3.4 --sport $UNPRIVPORTS \
--dport 10051 \
-j ACCEPT
- Su server Zabbix, configurare il proxy:
Administration/Proxies/Create proxy
Proxy name: fqdn-proxy.example.com
Proxy mode: Passive
Interface:
DNS name: fqdn-proxy.example.com
Connect to: DNS
- Attendere che lo veda
- Verificare i log:
sudo tail -f /var/log/zabbix/zabbix_proxy.log
Configurazione host interno
- Installare l'agente sui client
cd /tmp && \ wget http://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2+$(lsb_release -c -s)_all.deb && \ dpkg -i zabbix-release_4.0-2+$(lsb_release -c -s)_all.deb && \ apt-get update && \ apt-get install zabbix-agent
- Configurare:
sudoedit /etc/zabbix/zabbix_agentd.conf
Server=192.168.6.254 # Internal IP of Zabbix Proxy ServerActive=192.168.6.254 # Internal IP of Zabbix Proxy Hostname=internal-host.example.priv # Name of internal host as defined on zabbix server
- Avviare il l'agent
sudo systemctl enable zabbix-agent.service sudo systemctl restart zabbix-agent.service sudo systemctl status zabbix-agent.service
- Definire l'host sul server Zabbix, assegnandolo al proxy precedentemente creato
- Attendere circa 5 minuti, che il server invii i dettagli di configurazione al proxy.
Forzare l'invio della Configurazione al Passive Proxy
- Se si deve attendere troppo, si può forzare il server Zabbix ad inviare la configurazione, cambiando il parametro:
sudoedit /etc/zabbix/zabbix_server.conf
ProxyConfigFrequency=60
sudo systemctl restart zabbix-server.service
- Dopo circa 60 secondi, la configurazione sarà inviata la proxym, quindi rempostare poi il parametro al valore di default:
sudoedit /etc/zabbix/zabbix_server.conf
#ProxyConfigFrequency=3660
sudo systemctl restart zabbix-server.service