Zabbix proporciona imatges Docker per a cada component Zabbix com a contenidors portàtils i autosuficients per accelerar el desplegament i el procediment d'actualització.
Els components Zabbix inclouen suport de bases de dades MySQL i PostgreSQL, compatibilitat amb el servidor web Apache2 i Nginx. Aquestes imatges són separades en diferents imatges.
Des de Zabbix 6.0, s'han de crear triggers deterministes durant la instal·lació. Si el registre binari és habilitat per a MySQL/MariaDB, això requereix privilegis de superusuari o establir la variable/paràmetre de configuració log_bin_trust_function_creators = 1. Vegeu [Scripts de creació de bases de dades(/manual/appendix/install/db_scripts#mysql) per obtindre instruccions sobre com configurar la variable. Tingueu en compte que si s'executa des d'una consola, la variable només s'establirà temporalment i s'esborrarpa quan es reiniciï un Docker. En aquest cas, mantingueu el vostre servei SQL en funcionament, atureu el servei zabbix-server executant "docker compose down zabbix-server" i després "docker compose up -d zabbix-server".
Alternativament, podeu establir aquesta variable al fitxer de configuració.
Es proporcionen components Zabbix amb Ubuntu, Alpine Linux i CentOS:
Totes les imatges són configurades per reconstruir les darreres imatges si s'actualitzen les imatges base.
Hom pot fer un seguiment dels canvis dels fitxers de Docker mitjançant el [repositori oficial] de Zabbix (https://github.com/zabbix/zabbix-docker) a github.com. Podeu bifurcar el projecte o crear les vostres pròpies imatges basades en els fitxers oficials de Docker.
Tots els components de Zabbix són disponibles als següents repositoris Docker:
A més, hi ha suport per a trampes SNMP. Es proporciona com a repositori addicional (zabbix/zabbix-snmptraps) basat només en Ubuntu Trusty. Es pot enllaçar al servidor Zabbix i al proxy Zabbix.
Cada repositori de components Zabbix conté les etiquetes següents:
latest
: la darrera versió estable d'un component Zabbix basat en la imatge Linux Alpine.alpine-latest
: la darrera versió estable d'un component Zabbix basat en la imatge d'Alpine Linux.ubuntu-latest
: la darrera versió estable d'un component Zabbix basat en la imatge d'Ubuntualpine-6.0-latest
: darrera versió menor d'un component Zabbix 6.0 basat en la imatge d'Alpine Linuxubuntu-6.0-latest
- darrera versió menor d'un component Zabbix 6.0 basat en la imatge d'Ubuntualpine-6.0.*
- diverses versions menors d'un component Zabbix 6.0 basades en la imatge Alpine Linux, on * és la versió menor del component Zabbixubuntu-6.0.*
- diverses versions menors d'un component Zabbix 6.0 basades en la imatge Alpine Linux, on * és la versió menor del component ZabbixDesprés de descarregar les imatges, inicieu els contenidors executant l'ordre docker run
seguida d'arguments addicionals per especificar variables d'entorn (#environment-variables) i/o [punts de muntatge] (#volumes). Tot seguit teniu alguns exemples de configuració.
Zabbix no s'ha d'executar com a PID1/com a procés d'inici als contenidors.
Totes les imatges de components de Zabbix proporcionen variables d'entorn per controlar la configuració. Aquestes variables d'entorn s'enumeren a cada repositori de components. Aquestes variables d'entorn són opcions dels fitxers de configuració de Zabbix, però amb un mètode de denominació diferent. Per exemple, ZBX_LOGSLOWQUERIES
és igual a LogSlowQueries
dels fitxers de configuració del servidor Zabbix i dels proxys Zabbix.
Algunes opcions de configuració no es poden canviar. Per exemple, PIDFile
i LogType
.
Alguns components tenen variables d'entorn específiques, que no existeixen als fitxers de configuració oficials de Zabbix:
Variable | Components | Descripció |
---|---|---|
DB_SERVER_HOST |
Servidor Proxy Interfície web |
Aquesta variable és l'adreça IP o el nom DNS del servidor MySQL o PostgreSQL. El valor per defecte és mysql-server o postgres-server per a MySQL o PostgreSQL respectivament |
DB_SERVER_PORT |
Servidor Proxy Interfície web |
Aquesta variable és el port del servidor MySQL o PostgreSQL. Per defecte, el valor és '3306' o '5432' respectivament. |
MYSQL_USER |
Servidor Proxy Interfície web |
Usuari de la base de dades MySQL. Per defecte, el valor és 'zabbix'. |
MYSQL_PASSWORD |
Servidor Proxy Interfície web |
Mot de pas de la base de dades MySQL. Per defecte, el valor és 'zabbix'. |
MYSQL_DATABASE |
Servidor Proxy Interfície web |
Nom de la base de dades. Per defecte, el valor és 'zabbix' per al servidor Zabbix i 'zabbix_proxy' per al proxy Zabbix. |
POSTGRES_USER |
Servidor Interfície web |
Usuari de base de dades PostgreSQL. Per defecte, el valor és 'zabbix'. |
POSTGRES_PASSWORD |
Servidor Interfície web |
Mot de pas de base de dades PostgreSQL. Per defecte, el valor és 'zabbix'. |
POSTGRES_DB |
Servidor Interfície web |
Nom de la base de dades. Per defecte, el valor és 'zabbix' per al servidor Zabbix i 'zabbix_proxy' per al proxy Zabbix. |
PHP_TZ |
Interfície web | Fus horària en format PHP. La llista completa de zones horàries admeses es pot trobar a php.net. Per defecte, el valor és 'Europa/Riga'. |
ZBX_SERVER_NAME |
Interfície web | Nom d'instal·lació de Zabbix visible a l'extrem superior dret de la interfície web. Per defecte, el valor és 'Zabbix Docker' |
ZBX_JAVAGATEWAY_ENABLE |
Servidor Proxy |
Permet la comunicació amb Zabbix Java Gateway per recopilar comprovacions relacionades amb Java. El valor per defecte és "fals" |
ZBX_ENABLE_SNMP_TRAPS |
Servidor Proxy |
Activa la funcionalitat de trampes SNMP. Requereix una instància zabbix-snmptraps i un volum compartit /var/lib/zabbix/snmptraps al servidor Zabbix o al proxy Zabbix. |
Les imatges permeten emprar determinats punts de muntatge. Aquests punts de muntatge són diferents i depenen del tipus de component Zabbix:
Volum | Descripció |
---|---|
Agent Zabbix | |
/etc/zabbix/zabbix_agentd.d | El volum permet incloure fitxers *.conf i ampliar l'agent Zabbix mitjançant la funcionalitat UserParameter |
/var/lib/zabbix/modules | El volum permet carregar mòduls addicionals i ampliar l'agent Zabbix mitjançant la funcionalitat LoadModule |
/var/lib/zabbix/enc | El volum s'empra per emmagatzemar fitxers relacionats amb TLS. Aquests noms de fitxer s'especifiquen mitjançant les variables d'entorn ZBX_TLSCAFILE , ZBX_TLSCRLLFILE , ZBX_TLSKEY_FILE i ZBX_TLSPSKFILE |
Servidor Zabbix | |
/usr/lib/zabbix/alertscripts | El volum s'empra per als scripts d'alerta personalitzats. Aquesta és la configuració AlertScriptsPath a zabbix_server.conf |
/usr/lib/zabbix/externalscripts | El volum és emprat per comprovacions externes. Aquest és el paràmetre ExternalScripts a zabbix_server.conf |
/var/lib/zabbix/modules | El volum permet carregar mòduls addicionals i ampliar el servidor Zabbix mitjançant la funció LoadModule |
/var/lib/zabbix/enc | El volum s'empra per emmagatzemar fitxers relacionats amb TLS. Aquests noms de fitxer s'especifiquen mitjançant les variables d'entorn ZBX_TLSCAFILE , ZBX_TLSCRLLFILE , ZBX_TLSKEY_FILE i ZBX_TLSPSKFILE |
/var/lib/zabbix/ssl/certs | El volum s'empra com a ubicació dels fitxers de certificat de client SSL per a l'autenticació de client. Aquesta és la configuració SSLCertLocation a zabbix_server.conf |
/var/lib/zabbix/ssl/keys | El volum s'empra com a ubicació dels fitxers de clau privada SSL per a l'autenticació del client. Aquest és el paràmetre SSLKeyLocation a zabbix_server.conf |
/var/lib/zabbix/ssl/ssl_ca | El volum s'empra com a ubicació dels fitxers de l'autoritat de certificació (CA) per a la verificació del certificat del servidor SSL. Aquesta és la configuració SSLCALocation a zabbix_server.conf |
/var/lib/zabbix/snmptraps | El volum s'empra com a ubicació del fitxer snmptraps.log. Es pot compartir amb el contenidor zabbix-snmptraps i heretar-lo mitjançant l'opció Docker volumes_from quan es crea una nova instància del servidor Zabbix. La funció de processament de trampes SNMP es pot activar emprant el volum compartit i establint la variable d'entorn ZBX_ENABLE_SNMP_TRAPS a 'true' |
/var/lib/zabbix/mibs | El volum permet afegir nous fitxers MIB. No admet subdirectoris, tots els MIB s'han de posar a /var/lib/zabbix/mibs |
Proxy Zabbix | |
/usr/lib/zabbix/externalscripts | El volum és emprat per comprovacions externes. Aquesta és la configuració ExternalScripts a zabbix_proxy.conf |
/var/lib/zabbix/modules | El volum permet carregar mòduls addicionals i ampliar el servidor Zabbix mitjançant la funció LoadModule |
/var/lib/zabbix/enc | El volum s'empra per emmagatzemar fitxers relacionats amb TLS. Aquests noms de fitxer s'especifiquen mitjançant les variables d'entorn ZBX_TLSCAFILE , ZBX_TLSCRLLFILE , ZBX_TLSKEY_FILE i ZBX_TLSPSKFILE |
/var/lib/zabbix/ssl/certs | El volum s'empra com a ubicació dels fitxers de certificat de client SSL per a l'autenticació de client. Aquest és el paràmetre SSLCertLocation a zabbix_proxy.conf |
/var/lib/zabbix/ssl/keys | El volum s'empra com a ubicació dels fitxers de clau privada SSL per a l'autenticació del client. Aquesta és la configuració SSLKeyLocation a zabbix_proxy.conf |
/var/lib/zabbix/ssl/ssl_ca | El volum s'empra com a ubicació dels fitxers de l'autoritat de certificació (CA) per a la verificació del certificat del servidor SSL. És el paràmetre SSLCALocation a zabbix_proxy.conf |
/var/lib/zabbix/snmptraps | El volum s'empra com a ubicació del fitxer snmptraps.log. Es pot compartir amb el contenidor zabbix-snmptraps i heretar-lo mitjançant l'opció Docker volumes_from quan es crea una nova instància del servidor Zabbix. La funció de processament de trampes SNMP es pot activar emprant el volum compartit i establint la variable d'entorn ZBX_ENABLE_SNMP_TRAPS a 'true' |
/var/lib/zabbix/mibs | El volum permet afegir nous fitxers MIB. No admet subdirectoris, tots els MIB s'han de posar a /var/lib/zabbix/mibs |
Interfície web Zabbix basada en el servidor web Apache2 | |
/etc/ssl/apache2 | El volum activa HTTPS per a la interfície web Zabbix. El volum hauria de contindre fitxers ssl.crt i ssl.key preparats per a Apache2 |
Interfície web Zabbix basada en el servidor web Nginx | |
/etc/ssl/nginx | El volum activa HTTPS per a la interfície web Zabbix. El volum hauria de contindre els dos fitxers ssl.crt , ssl.key i dhparam.pem preparats per a connexions Nginx SSL |
Zabbix snmptraps | |
/var/lib/zabbix/snmptraps | El volum conté un fitxer de registre anomenat snmptraps.log amb trampes SNMP rebudes |
/var/lib/zabbix/mibs | El volum permet afegir nous fitxers MIB. No admet subdirectoris, tots els MIB s'han de posar a /var/lib/zabbix/mibs |
Per obtindre més informació, veieu els dipòsits oficials de Zabbix a Docker Hub.
Exemple 1
L'exemple mostra com executar el servidor Zabbix amb suport de bases de dades MySQL, la interfície web Zabbix basada en el servidor web Nginx i la passarel·la Java Zabbix.
1. Creeu una xarxa dedicada als contenidors de components Zabbix:
2. Inicieu la instància del servidor MySQL buida
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--network=zabbix-net \
--restart unless-stopped \
-d mysql:8.0 \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
3. Inicieu la instància de passarel·la Java de Zabbix
docker run --name zabbix-java-gateway -t \
--network=zabbix-net \
--restart unless-stopped \
-d zabbix/zabbix-java-gateway:alpine-6.0-latest
4. Inicieu la instància del servidor Zabbix i enllaceu la instància amb la instància del servidor MySQL creada
docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--network=zabbix-net \
-p 10051:10051 \
--restart unless-stopped \
-d zabbix/zabbix-server-mysql:alpine-6.0-latest
La instància del servidor Zabbix exposa el port 10051/TCP (trapper Zabbix) a l'equip.
5. Inicieu la interfície web de Zabbix i enllaçeu la instància amb el servidor MySQL creat i les instàncies del servidor Zabbix
docker run --name zabbix-web-nginx-mysql -t \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--network=zabbix-net \
-p 80:8080 \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-mysql:alpine-6.0-latest
La instància de la interfície web de Zabbix exposa el port 80/TCP (HTTP) a l'equip.
Exemple 2
L'exemple ensenya com executar el servidor Zabbix amb suport de bases de dades PostgreSQL, la interfície web Zabbix basada en el servidor web Nginx i la funció de trampa SNMP.
1. Creeu una xarxa dedicada als contenidors de components Zabbix:
2. Inicieu la instància del servidor PostgreSQL buida
docker run --name postgres-server -t \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix_pwd" \
-e POSTGRES_DB="zabbix" \
--network=zabbix-net \
--restart unless-stopped \
-d postgres:latest
3. Inicieu la instància Zabbix snmptraps
docker run --name zabbix-snmptraps -t \
-v /zbx_instance/snmptraps:/var/lib/zabbix/snmptraps:rw \
-v /var/lib/zabbix/mibs:/usr/share/snmp/mibs:ro \
--network=zabbix-net \
-p 162:1162/udp \
--restart unless-stopped \
-d zabbix/zabbix-snmptraps:alpine-6.0-latest
La instància snmptrap de Zabbix exposa el port 162/UDP (trampes SNMP) a l'equip.
4. Inicieu la instància del servidor Zabbix i enllaceu la instància amb la instància del servidor PostgreSQL creada
docker run --name zabbix-server-pgsql -t \
-e DB_SERVER_HOST="postgres-server" \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix_pwd" \
-e POSTGRES_DB="zabbix" \
-e ZBX_ENABLE_SNMP_TRAPS="true" \
--network=zabbix-net \
-p 10051:10051 \
--volumes-from zabbix-snmptraps \
--restart unless-stopped \
-d zabbix/zabbix-server-pgsql:alpine-6.0-latest
La instància del servidor Zabbix exposa el port 10051/TCP (trapper Zabbix) a l'equip.
5. Inicieu la interfície web de Zabbix i enllaceu la instància amb el servidor PostgreSQL creat i les instàncies del servidor Zabbix
docker run --name zabbix-web-nginx-pgsql -t \
-e ZBX_SERVER_HOST="zabbix-server-pgsql" \
-e DB_SERVER_HOST="postgres-server" \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix_pwd" \
-e POSTGRES_DB="zabbix" \
--network=zabbix-net \
-p 443:8443 \
-p 80:8080 \
-v /etc/ssl/nginx:/etc/ssl/nginx:ro \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-pgsql:alpine-6.0-latest
La instància de la interfície web de Zabbix exposa el port 443/TCP (HTTPS) a l'equip.
El directori /etc/ssl/nginx ha de contindre el certificat amb el nom necessari.
Exemple 3
L'exemple mostra com executar el servidor Zabbix amb suport de bases de dades MySQL, basat en la interfície web de Zabbix al servidor web Nginx i a la passarel·la Zabbix Java emprant "podman" a Red Hat 8.
1. Creeu un pod nou amb el nom "zabbix" i els ports exposats (interfície web, trapper del servidor Zabbix):
2. (opcional) Inicieu el contenidor de l'agent Zabbix a la ubicació del pod zabbix
:
podman run --name zabbix-agent \
-e ZBX_SERVER_HOST="127.0.0.1,localhost" \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-agent-50:latest
3. Creeu el directori ./mysql/
a l'equip i inicieu el servidor Oracle MySQL 8.0:
podman run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-v ./mysql/:/var/lib/mysql/:Z \
--restart=always \
--pod=zabbix \
-d mysql:8.0 \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
4. Inicieu el contenidor del servidor Zabbix:
podman run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="127.0.0.1" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="127.0.0.1" \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-server-mysql-60
5. Inicieu el contenidor Zabbix Java Gateway:
podman run --name zabbix-java-gateway -t \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-java-gateway-60
6. Inicieu el contenidor de la interfície web Zabbix:
podman run --name zabbix-web-mysql -t \
-e ZBX_SERVER_HOST="127.0.0.1" \
-e DB_SERVER_HOST="127.0.0.1" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-web-mysql-60
El pod zabbix
exposa el port 80/TCP (HTTP) a l'equip des de 8080/TCP del contenidor zabbix-web-mysql
.
Zabbix també proporciona fitxers de composició per definir i executar components Zabbix multicontenidor a Docker. Aquests fitxers de redacció són disponibles al dipòsit oficial de docker de Zabbix a github.com: https://github.com/zabbix/zabbix-docker. Aquests fitxers de composició s'afegeixen com a exemples, es substitueixen. Per exemple, contenen proxys que admeten MySQL i SQLite3.
Hi ha diverses versions diferents dels fitxers de composició:
Nom del fitxer | Descripció |
---|---|
docker-compose_v3_alpine_mysql_latest.yaml |
El fitxer de composició executa la darrera versió dels components Zabbix 5.4 a Alpine Linux amb suport de bases de dades MySQL. |
docker-compose_v3_alpine_mysql_local.yaml |
El fitxer de composició crea localment la darrera versió de Zabbix 5.4 i executa components Zabbix a Alpine Linux amb suport de bases de dades MySQL. |
docker-compose_v3_alpine_pgsql_latest.yaml |
El fitxer de composició executa la darrera versió dels components Zabbix 5.4 a Alpine Linux amb suport de bases de dades PostgreSQL. |
docker-compose_v3_alpine_pgsql_local.yaml |
El fitxer Compose crea localment la darrera versió de Zabbix 5.4 i executa components Zabbix a Alpine Linux amb suport de bases de dades PostgreSQL. |
docker-compose_v3_centos_mysql_latest.yaml |
El fitxer de composició executa la darrera versió dels components Zabbix 5.4 a CentOS 8 amb suport de bases de dades MySQL. |
docker-compose_v3_centos_mysql_local.yaml |
El fitxer de composició crea localment la darrera versió de Zabbix 5.4 i executa components Zabbix a CentOS 8 amb suport de bases de dades MySQL. |
docker-compose_v3_centos_pgsql_latest.yaml |
El fitxer de composició executa la darrera versió dels components Zabbix 5.4 a CentOS 8 amb suport de bases de dades PostgreSQL. |
docker-compose_v3_centos_pgsql_local.yaml |
El fitxer de composició crea localment la darrera versió de Zabbix 5.4 i executa components Zabbix a CentOS 8 amb suport de bases de dades PostgreSQL. |
docker-compose_v3_ubuntu_mysql_latest.yaml |
El fitxer de composició executa la darrera versió dels components Zabbix 5.4 a Ubuntu 20.04 amb suport de bases de dades MySQL. |
docker-compose_v3_ubuntu_mysql_local.yaml |
El fitxer de composició crea localment la darrera versió de Zabbix 5.4 i executa components Zabbix a Ubuntu 20.04 amb suport de bases de dades MySQL. |
docker-compose_v3_ubuntu_pgsql_latest.yaml |
El fitxer Compose executa la darrera versió dels components Zabbix 5.4 a Ubuntu 20.04 amb suport de bases de dades PostgreSQL. |
docker-compose_v3_ubuntu_pgsql_local.yaml |
El fitxer de composició crea localment la darrera versió de Zabbix 5.4 i executa components Zabbix a Ubuntu 20.04 amb suport de bases de dades PostgreSQL. |
Els fitxers de Docker Compose disponibles admeten la versió 3 de Docker Compose.
Els fitxers de redacció són configurats per admetre l'emmagatzematge local a un equip. Docker Compose crearà un directori zbx_env
a la carpeta amb el fitxer de composició quan executeu components Zabbix amb el fitxer de composició. El directori contindrà la mateixa estructura que la descrita anteriorment a la secció Volums i el directori per emmagatzemar la base de dades.
També hi ha volums de només lectura per als fitxers /etc/localtime
i /etc/timezone
.
Al mateix directori amb els fitxers de redacció a github.com, podeu trobar fitxers amb variables d'entorn predeterminades per a cada component del fitxer de composició. Aquests fitxers d'entorn s'anomenen així: .env_<tipus de component>
.
Les ordres que es mostren a continuació són per a Docker Compose V2. Si empreu Docker Compose V1, substituïu "docker compose -f" per "docker-compose -f"
Exemple 1
L'ordre descarregarà les darreres imatges de Zabbix 6.0 per a cada component Zabbix i les executarà en mode de separació.
No us oblideu de descarregar els fitxers .env_<tipus de component>
del dipòsit oficial de Zabbix de github.com amb fitxers de redacció.
Exemple 2
L'ordre descarregarà la imatge base Ubuntu 20.04 (focal), després crearà components de Zabbix 6.0 localment i els executarà en mode de separació.