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.