Instalacja z kontenerów

Przegląd

Ta sekcja opisuje, jak wdrożyć Zabbix za pomocą Docker lub Docker Compose.

Zabbix oficjalnie udostępnia:

  • Oddzielne obrazy Docker dla każdego komponentu Zabbix, umożliwiające ich uruchamianie jako przenośnych i samowystarczalnych kontenerów.
  • Pliki Compose do definiowania i uruchamiania wielokontenerowych komponentów Zabbix w Docker.

Od wersji Zabbix 6.0 deterministyczne wyzwalacze muszą być tworzone podczas instalacji. Jeśli dla MySQL/MariaDB włączone jest logowanie binarne, wymaga to uprawnień superusera lub ustawienia zmiennej/parametru konfiguracyjnego log_bin_trust_function_creators = 1. Instrukcje dotyczące ustawienia tej zmiennej można znaleźć w sekcji Database creation scripts.
Należy pamiętać, że w przypadku wykonania z konsoli zmienna zostanie ustawiona tylko tymczasowo i zostanie utracona po ponownym uruchomieniu Docker. W takim przypadku pozostaw usługę SQL uruchomioną, zatrzymaj tylko usługę zabbix-server, wykonując polecenia 'docker compose down zabbix-server', a następnie 'docker compose up -d zabbix-server'.
Alternatywnie można ustawić tę zmienną w pliku konfiguracyjnym.

Pliki źródłowe

Pliki źródłowe Dockerfile są przechowywane w oficjalnym repozytorium Zabbix na GitHubie, gdzie można śledzić najnowsze zmiany w plikach lub sforkować projekt, aby tworzyć własne obrazy.

Docker

Zabbix udostępnia obrazy oparte na różnych bazowych obrazach systemów operacyjnych. Aby uzyskać listę obsługiwanych bazowych obrazów systemów operacyjnych dla określonego komponentu Zabbix, zobacz opis komponentu w Docker Hub. Wszystkie obrazy Zabbix są skonfigurowane tak, aby przebudowywać najnowsze obrazy, jeśli obrazy bazowe zostaną zaktualizowane.

Instalacja

Aby pobrać obraz komponentu Zabbix, uruchom:

docker pull zabbix/zabbix-server-mysql

Zastąp zabbix/zabbix-server-mysql nazwą wymaganego repozytorium dockera.

To polecenie pobierze najnowszą stabilną wersję komponentu Zabbix opartą na systemie operacyjnym Alpine Linux. Możesz dodać tagi do nazwy repozytorium, aby uzyskać obraz oparty na innym systemie operacyjnym lub obraz określonej głównej albo pobocznej wersji Zabbix.

W Docker Hub dostępne są następujące repozytoria:

Komponent Repozytorium Docker
Zabbix agent zabbix/zabbix-agent
Zabbix serwer
z obsługą MySQL zabbix/zabbix-server-mysql
z obsługą PostgreSQL zabbix/zabbix-server-pgsql
Interfejs webowy Zabbix
oparty na serwerze WWW Apache2 z obsługą MySQL zabbix/zabbix-web-apache-mysql
oparty na serwerze WWW Apache2 z obsługą PostgreSQL zabbix/zabbix-web-apache-pgsql
oparty na serwerze WWW Nginx z obsługą MySQL zabbix/zabbix-web-nginx-mysql
oparty na serwerze WWW Nginx z obsługą PostgreSQL zabbix/zabbix-web-nginx-pgsql
Zabbix proxy
z obsługą SQLite3 zabbix/zabbix-proxy-sqlite3
z obsługą MySQL zabbix/zabbix-proxy-mysql
Zabbix Java gateway zabbix/zabbix-java-gateway

Obsługa pułapek SNMP jest udostępniana w osobnym repozytorium zabbix/zabbix-snmptraps. Może ono zostać połączone z Zabbix serwer i Zabbix proxy.

Tagi

Oficjalne obrazy komponentów Zabbix mogą zawierać następujące tagi:

Tag Opis Przykład
latest Najnowsza stabilna wersja komponentu Zabbix oparta na obrazie Alpine Linux. zabbix-agent:latest
<OS>-trunk Najnowsza kompilacja nightly wersji Zabbix, która jest obecnie rozwijana dla określonego systemu operacyjnego.

<OS> - bazowy system operacyjny. Obsługiwane wartości:
alpine - Alpine Linux;
ltsc2019 - Windows 10 LTSC 2019 (tylko agent);
ol - Oracle Linux;
ltsc2022 - Windows 11 LTSC 2022 (tylko agent);
ubuntu - Ubuntu
zabbix-agent:ubuntu-trunk
<OS>-latest Najnowsza stabilna wersja komponentu Zabbix dla określonego systemu operacyjnego.

<OS> - bazowy system operacyjny. Obsługiwane wartości:
alpine - Alpine Linux;
ltsc2019 - Windows 10 LTSC 2019 (tylko agent);
ol - Oracle Linux;
ltsc2022 - Windows 11 LTSC 2022 (tylko agent);
ubuntu - Ubuntu
zabbix-agent:ol-latest
<OS>-X.X-latest Najnowsza wersja podrzędna komponentu Zabbix dla określonej wersji głównej i systemu operacyjnego.

<OS> - bazowy system operacyjny. Obsługiwane wartości:
alpine - Alpine Linux;
ltsc2019 - Windows 10 LTSC 2019 (tylko agent);
ol - Oracle Linux;
ltsc2022 - Windows 11 LTSC 2022 (tylko agent);
ubuntu - Ubuntu

X.X - główna wersja Zabbix (tj. 6.0, 7.4, 8.0).
zabbix-agent:alpine-8.0-latest
<OS>-X.X.* Określona wersja podrzędna komponentu Zabbix dla określonej wersji głównej i systemu operacyjnego.

<OS> - bazowy system operacyjny. Obsługiwane wartości:
alpine - Alpine Linux;
ltsc2019 - Windows 10 LTSC 2019 (tylko agent);
ol - Oracle Linux;
ltsc2022 - Windows 11 LTSC 2022 (tylko agent);
ubuntu - Ubuntu

X.X - główna wersja Zabbix (tj. 6.0, 7.4, 8.0).

* - wersja podrzędna Zabbix
zabbix-agent:alpine-8.0.1

Konfiguracja początkowa

Po pobraniu obrazów uruchom kontenery, wykonując polecenie docker run, a następnie podając dodatkowe argumenty określające wymagane zmienne środowiskowe i/lub punkty montowania. Poniżej przedstawiono kilka przykładów konfiguracji.

Aby umożliwić komunikację między komponentami Zabbix, niektóre porty, takie jak 10051/TCP dla serwera Zabbix (trapper), 10050/TCP dla agenta Zabbix, 162/UDP dla pułapek SNMP oraz 80/TCP dla interfejsu webowego Zabbix, będą udostępnione na maszynie hosta. Pełna lista domyślnych portów używanych przez komponenty Zabbix jest dostępna na stronie Wymagania. W przypadku serwera Zabbix i agenta domyślny port można zmienić, ustawiając zmienną środowiskową ZBX_LISTENPORT environment variable.

Zmienne środowiskowe

Wszystkie obrazy komponentów Zabbix udostępniają zmienne środowiskowe do sterowania konfiguracją. Obsługiwane zmienne środowiskowe są wymienione w repozytorium komponentu.

Te zmienne środowiskowe są odpowiednikami opcji z plików konfiguracyjnych Zabbix, ale mają inną metodę nazewnictwa. Na przykład ZBX_LOGSLOWQUERIES jest odpowiednikiem LogSlowQueries z plików konfiguracyjnych Zabbix serwer lub Zabbix proxy.

Niektórych opcji konfiguracyjnych (np. PIDFile i LogType) nie można zmienić.

Następujące zmienne środowiskowe są specyficzne dla komponentów Docker i nie występują w plikach konfiguracyjnych Zabbix:

Variable Components Default value Description
DB_SERVER_HOST Serwer
Proxy
Interfejs webowy
mysql-server dla MYSQL
postgres-server dla PostgreSQL
Nazwa IP lub DNS serwera MySQL lub PostgreSQL.
DB_SERVER_PORT Serwer
Proxy
Interfejs webowy
3306 dla MYSQL
5432 dla PostgreSQL
Port serwera MySQL lub PostgreSQL.
MYSQL_USER Serwer
Proxy
Interfejs webowy
zabbix Użytkownik bazy danych MySQL.
MYSQL_PASSWORD Serwer
Proxy
Interfejs webowy
zabbix Hasło bazy danych MySQL.
MYSQL_DATABASE Serwer
Proxy
Interfejs webowy
zabbix dla serwera Zabbix
zabbix_proxy dla proxy Zabbix
Nazwa bazy danych Zabbix.
POSTGRES_USER Serwer
Interfejs webowy
zabbix Użytkownik bazy danych PostgreSQL.
POSTGRES_PASSWORD Serwer
Interfejs webowy
zabbix Hasło bazy danych PostgreSQL.
POSTGRES_DB Serwer
Interfejs webowy
zabbix dla serwera Zabbix
zabbix_proxy dla proxy Zabbix
Nazwa bazy danych Zabbix.
PHP_TZ Interfejs webowy Europe/Riga Strefa czasowa w formacie PHP. Pełna lista obsługiwanych stref czasowych jest dostępna na php.net.
ZBX_SERVER_NAME Interfejs webowy Zabbix Docker Widoczna nazwa instalacji Zabbix pod logo Zabbix w pionowym menu interfejsu webowego.
ZBX_JAVAGATEWAY_ENABLE Serwer
Proxy
false Włącza komunikację z Zabbix Java gateway w celu zbierania kontroli związanych z Javą.
ZBX_ENABLE_SNMP_TRAPS Serwer
Proxy
false Włącza funkcję pułapek SNMP. Wymaga instancji zabbix-snmptraps oraz współdzielonego woluminu /var/lib/zabbix/snmptraps dla serwera Zabbix lub proxy Zabbix.
Woluminy

Obrazy umożliwiają montowanie woluminów przy użyciu następujących punktów montowania:

Wolumin Opis
Zabbix agent
/etc/zabbix/zabbix_agentd.d Wolumin umożliwia dołączanie plików *.conf oraz rozszerzanie Zabbix agent przy użyciu funkcji UserParameter
/var/lib/zabbix/modules Wolumin umożliwia ładowanie dodatkowych modułów oraz rozszerzanie Zabbix agent przy użyciu funkcji LoadModule
/var/lib/zabbix/enc Wolumin służy do przechowywania plików związanych z TLS. Nazwy tych plików są określane przy użyciu zmiennych środowiskowych ZBX_TLSCAFILE, ZBX_TLSCRLFILE, ZBX_TLSKEY_FILE oraz ZBX_TLSPSKFILE
Zabbix serwer
/usr/lib/zabbix/alertscripts Wolumin jest używany dla niestandardowych skryptów alertów. Jest to parametr AlertScriptsPath w zabbix_server.conf
/usr/lib/zabbix/externalscripts Wolumin jest używany przez kontrole zewnętrzne. Jest to parametr ExternalScripts w zabbix_server.conf
/var/lib/zabbix/modules Wolumin umożliwia ładowanie dodatkowych modułów oraz rozszerzanie Zabbix serwer przy użyciu funkcji LoadModule
/var/lib/zabbix/enc Wolumin służy do przechowywania plików związanych z TLS. Nazwy tych plików są określane przy użyciu zmiennych środowiskowych ZBX_TLSCAFILE, ZBX_TLSCRLFILE, ZBX_TLSKEY_FILE oraz ZBX_TLSPSKFILE
/var/lib/zabbix/ssl/certs Wolumin jest używany jako lokalizacja plików certyfikatów klienta SSL do uwierzytelniania klienta. Jest to parametr SSLCertLocation w zabbix_server.conf
/var/lib/zabbix/ssl/keys Wolumin jest używany jako lokalizacja plików kluczy prywatnych SSL do uwierzytelniania klienta. Jest to parametr SSLKeyLocation w zabbix_server.conf
/var/lib/zabbix/ssl/ssl_ca Wolumin jest używany jako lokalizacja plików urzędu certyfikacji (CA) do weryfikacji certyfikatu serwera SSL. Jest to parametr SSLCALocation w zabbix_server.conf
/var/lib/zabbix/snmptraps Wolumin jest używany jako lokalizacja pliku snmptraps.log. Może być współdzielony przez kontener zabbix-snmptraps i dziedziczony przy użyciu opcji Docker volumes_from podczas tworzenia nowej instancji Zabbix serwer. Funkcję przetwarzania pułapek SNMP można włączyć przy użyciu współdzielonego woluminu i ustawieniu zmiennej środowiskowej ZBX_ENABLE_SNMP_TRAPS na 'true'
/var/lib/zabbix/mibs Wolumin umożliwia dodawanie nowych plików MIB. Nie obsługuje podkatalogów, wszystkie pliki MIB muszą być umieszczone w /var/lib/zabbix/mibs
Zabbix proxy
/usr/lib/zabbix/externalscripts Wolumin jest używany przez kontrole zewnętrzne. Jest to parametr ExternalScripts w zabbix_proxy.conf
/var/lib/zabbix/db_data/ Wolumin umożliwia przechowywanie plików bazy danych na urządzeniach zewnętrznych. Obsługiwane tylko dla Zabbix proxy z SQLite3
/var/lib/zabbix/modules Wolumin umożliwia ładowanie dodatkowych modułów oraz rozszerzanie Zabbix serwer przy użyciu funkcji LoadModule
/var/lib/zabbix/enc Wolumin służy do przechowywania plików związanych z TLS. Nazwy tych plików są określane przy użyciu zmiennych środowiskowych ZBX_TLSCAFILE, ZBX_TLSCRLFILE, ZBX_TLSKEY_FILE oraz ZBX_TLSPSKFILE
/var/lib/zabbix/ssl/certs Wolumin jest używany jako lokalizacja plików certyfikatów klienta SSL do uwierzytelniania klienta. Jest to parametr SSLCertLocation w zabbix_proxy.conf
/var/lib/zabbix/ssl/keys Wolumin jest używany jako lokalizacja plików kluczy prywatnych SSL do uwierzytelniania klienta. Jest to parametr SSLKeyLocation w zabbix_proxy.conf
/var/lib/zabbix/ssl/ssl_ca Wolumin jest używany jako lokalizacja plików urzędu certyfikacji (CA) do weryfikacji certyfikatu serwera SSL. Jest to parametr SSLCALocation w zabbix_proxy.conf
/var/lib/zabbix/snmptraps Wolumin jest używany jako lokalizacja pliku snmptraps.log. Może być współdzielony przez kontener zabbix-snmptraps i dziedziczony przy użyciu opcji Docker volumes_from podczas tworzenia nowej instancji Zabbix serwer. Funkcję przetwarzania pułapek SNMP można włączyć przy użyciu współdzielonego woluminu i ustawieniu zmiennej środowiskowej ZBX_ENABLE_SNMP_TRAPS na 'true'
/var/lib/zabbix/mibs Wolumin umożliwia dodawanie nowych plików MIB. Nie obsługuje podkatalogów, wszystkie pliki MIB muszą być umieszczone w /var/lib/zabbix/mibs
Interfejs webowy Zabbix oparty na serwerze Apache2
/etc/ssl/apache2 Wolumin umożliwia włączenie HTTPS dla interfejsu webowego Zabbix. Wolumin musi zawierać dwa pliki ssl.crt oraz ssl.key przygotowane dla połączeń SSL Apache2
Interfejs webowy Zabbix oparty na serwerze Nginx
/etc/ssl/nginx Wolumin umożliwia włączenie HTTPS dla interfejsu webowego Zabbix. Wolumin musi zawierać dwa pliki ssl.crt, ssl.key oraz dhparam.pem przygotowane dla połączeń SSL Nginx
Zabbix snmptraps
/var/lib/zabbix/snmptraps Wolumin zawiera plik dziennika snmptraps.log z odebranymi pułapkami SNMP
/var/lib/zabbix/mibs Wolumin umożliwia dodawanie nowych plików MIB. Nie obsługuje podkatalogów, wszystkie pliki MIB muszą być umieszczone w /var/lib/zabbix/mibs

Aby uzyskać dodatkowe informacje, zobacz oficjalne repozytoria Zabbix w Docker Hub.

Przykłady

Przykład 1

Ten przykład pokazuje, jak uruchomić serwer Zabbix z obsługą bazy danych MySQL, interfejs webowy Zabbix oparty na serwerze webowym Nginx oraz Zabbix Java gateway.

1. Utwórz sieć przeznaczoną dla kontenerów komponentów Zabbix:

docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net

2. Uruchom pustą instancję serwera MySQL:

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.4-oracle \
    --character-set-server=utf8 --collation-server=utf8_bin \
    --default-authentication-plugin=caching_sha2_password

3. Uruchom instancję Zabbix Java gateway:

docker run --name zabbix-java-gateway -t \
    --network=zabbix-net \
    --restart unless-stopped \
    -d zabbix/zabbix-java-gateway:alpine-8.0-latest

4. Uruchom instancję serwera Zabbix i połącz ją z utworzoną instancją serwera MySQL:

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-8.0-latest

5. Uruchom interfejs webowy Zabbix i połącz tę instancję z utworzonymi instancjami serwera MySQL i serwera 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-8.0-latest

Przykład 2

Ten przykład pokazuje, jak uruchomić serwer Zabbix z obsługą bazy danych PostgreSQL, interfejs webowy Zabbix oparty na serwerze webowym Nginx oraz funkcję pułapek SNMP.

1. Utwórz sieć przeznaczoną dla kontenerów komponentów Zabbix:

docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net

2. Uruchom pustą instancję serwera PostgreSQL:

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. Uruchom instancję 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-8.0-latest

4. Uruchom instancję serwera Zabbix i połącz ją z utworzoną instancją serwera PostgreSQL:

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-8.0-latest

5. Uruchom interfejs webowy Zabbix i połącz tę instancję z utworzonymi instancjami serwera PostgreSQL i serwera 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-8.0-latest

Przykład 3

Ten przykład pokazuje, jak uruchomić serwer Zabbix z obsługą bazy danych MySQL, interfejs webowy Zabbix oparty na serwerze webowym Nginx oraz Zabbix Java gateway przy użyciu podman w systemie Red Hat 8.

1. Utwórz nowy pod o nazwie zabbix i udostępnionych portach (interfejs webowy, trapper serwera Zabbix):

podman pod create --name zabbix -p 80:8080 -p 10051:10051

2. (opcjonalnie) Uruchom kontener Zabbix agent w podzie 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-74:latest

3. Utwórz katalog ./mysql/ na hoście i uruchom serwer Oracle MySQL 8.4:

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.4 \
    --character-set-server=utf8 --collation-server=utf8_bin \
    --default-authentication-plugin=caching_sha2_password

4. Uruchom kontener serwera 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-74

5. Uruchom kontener Zabbix Java Gateway:

podman run --name zabbix-java-gateway -t \
    --restart=always \
    --pod=zabbix \
    -d registry.connect.redhat.com/zabbix/zabbix-java-gateway-74

6. Uruchom kontener interfejsu webowego 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-74

Pod zabbix udostępnia port 80/TCP (HTTP) na maszynie hosta z portu 8080/TCP kontenera zabbix-web-mysql.

Docker Compose

Alternatywnie Zabbix można zainstalować przy użyciu wtyczki Docker Compose. Pliki Compose do definiowania i uruchamiania wielokontenerowych komponentów Zabbix są dostępne w oficjalnym repozytorium Zabbix Docker w serwisie GitHub.

Oficjalne pliki Compose Zabbix obsługują wersję 3 Docker Compose.

Te pliki Compose zostały dodane jako przykłady; są rozbudowane. Na przykład zawierają proxy z obsługą zarówno MySQL, jak i SQLite3.

Aby uzyskać pliki Docker Compose udostępniane przez Zabbix, sklonuj repozytorium:

git clone https://github.com/zabbix/zabbix-docker.git

Przełącz się na wymaganą wersję:

git checkout 8.0

Skonfiguruj pliki Compose oraz utwórz i uruchom kontenery:

docker compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up

Zastąp docker-compose_v3_alpine_mysql_latest.yaml w powyższym poleceniu wymaganym plikiem konfiguracyjnym.

Dostępne są następujące opcje:

Nazwa pliku Opis
docker-compose_v3_alpine_mysql_latest.yaml Plik Compose uruchamia najnowszą wersję komponentów Zabbix 8.0 w systemie Alpine Linux z obsługą bazy danych MySQL.
docker-compose_v3_alpine_mysql_local.yaml Plik Compose lokalnie buduje najnowszą wersję Zabbix 8.0 i uruchamia komponenty Zabbix w systemie Alpine Linux z obsługą bazy danych MySQL.
docker-compose_v3_alpine_pgsql_latest.yaml Plik Compose uruchamia najnowszą wersję komponentów Zabbix 8.0 w systemie Alpine Linux z obsługą bazy danych PostgreSQL.
docker-compose_v3_alpine_pgsql_local.yaml Plik Compose lokalnie buduje najnowszą wersję Zabbix 8.0 i uruchamia komponenty Zabbix w systemie Alpine Linux z obsługą bazy danych PostgreSQL.
docker-compose_v3_ol_mysql_latest.yaml Plik Compose uruchamia najnowszą wersję komponentów Zabbix 8.0 w systemie Oracle Linux z obsługą bazy danych MySQL.
docker-compose_v3_ol_mysql_local.yaml Plik Compose lokalnie buduje najnowszą wersję Zabbix 8.0 i uruchamia komponenty Zabbix w systemie Oracle Linux z obsługą bazy danych MySQL.
docker-compose_v3_ol_pgsql_latest.yaml Plik Compose uruchamia najnowszą wersję komponentów Zabbix 8.0 w systemie Oracle Linux z obsługą bazy danych PostgreSQL.
docker-compose_v3_ol_pgsql_local.yaml Plik Compose lokalnie buduje najnowszą wersję Zabbix 8.0 i uruchamia komponenty Zabbix w systemie Oracle Linux z obsługą bazy danych PostgreSQL.
docker-compose_v3_ubuntu_mysql_latest.yaml Plik Compose uruchamia najnowszą wersję komponentów Zabbix 8.0 w systemie Ubuntu 24.04 (noble) z obsługą bazy danych MySQL.
docker-compose_v3_ubuntu_mysql_local.yaml Plik Compose lokalnie buduje najnowszą wersję Zabbix 8.0 i uruchamia komponenty Zabbix w systemie Ubuntu 24.04 (noble) z obsługą bazy danych MySQL.
docker-compose_v3_ubuntu_pgsql_latest.yaml Plik Compose uruchamia najnowszą wersję komponentów Zabbix 8.0 w systemie Ubuntu 24.04 (noble) z obsługą bazy danych PostgreSQL.
docker-compose_v3_ubuntu_pgsql_local.yaml Plik Compose lokalnie buduje najnowszą wersję Zabbix 8.0 i uruchamia komponenty Zabbix w systemie Ubuntu 24.04 (noble) z obsługą bazy danych PostgreSQL.

Pamięć masowa

Pliki Compose są skonfigurowane tak, aby obsługiwać lokalną pamięć masową na maszynie hosta. Docker Compose utworzy katalog zbx_env w folderze z plikiem compose podczas uruchamiania komponentów Zabbix przy użyciu pliku compose. Katalog będzie zawierał tę samą strukturę, jak opisano w sekcji Volumes, oraz katalog do przechowywania bazy danych.

Dostępne są również wolumeny w trybie tylko do odczytu dla plików /etc/localtime i /etc/timezone.

Zmienne środowiskowe

Pliki zmiennych mają następującą strukturę nazewnictwa: .env_<typ komponentu> i znajdują się w katalogu env_vars. Szczegółowe informacje o nazewnictwie zmiennych i dostępnych opcjach wyboru można znaleźć w sekcji zmienne środowiskowe.

Przykłady

Przykład 1

git checkout 8.0
docker compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d

Polecenie pobierze najnowsze obrazy Zabbix 8.0 dla każdego komponentu Zabbix i uruchomi je w trybie odłączonym.

Nie zapomnij pobrać plików .env_<type of component> z oficjalnego repozytorium Zabbix na github.com wraz z plikami compose.

Przykład 2

git checkout 8.0
docker compose -f ./docker-compose_v3_ubuntu_mysql_local.yaml up -d

Polecenie pobierze obraz bazowy Ubuntu 24.04 (noble), a następnie zbuduje lokalnie komponenty Zabbix 8.0 i uruchomi je w trybie odłączonym.