5 Instalēšana no konteineriem
Pārskats
Šajā lapā ir aprakstīts, kā izvietot Zabbix, izmantojot Docker vai Docker Compose.
Docker Compose ir ātrākais veids, kā izvietot Zabbix. Tas nolasa konfigurācijas failu un automātiski palaiž visus konteinerus, kas veido pilnu Zabbix konfigurāciju, pareizajā secībā.
Docker (manuāla izvietošana) sasniedz to pašu rezultātu, izvietojot katru komponentu soli pa solim.
Priekšnosacījumi
Pirms sākat, pārliecinieties, ka jūsu sistēmā ir instalēts Docker (1.12.0 vai jaunāka versija). Ja tas nav instalēts, sekojiet Docker instalēšanas rokasgrāmatai. Docker Compose izvietošanai ir nepieciešams arī Docker Compose (2.24.0 vai jaunāka versija).
Dažiem Zabbix komponentiem ir nepieciešams, lai Docker darbināmajā hostā būtu atvērti noteikti porti (piem., 10051/TCP Zabbix serverim, 162/UDP SNMP trapiem).
Pilnu Zabbix komponentu izmantoto portu sarakstu skatiet sadaļā Prasības.
Zabbix serverim un aģentam noklusējuma portu var mainīt, attiecīgajā konteinerā iestatot vides mainīgo ZBX_LISTENPORT.
Pieejamie Docker attēli
Zabbix nodrošina Docker attēlu katram Zabbix komponentam, un visi tie ir publicēti Docker Hub. Katrs attēls tiek izmantots, lai izveidotu konteineru, kurā darbojas attiecīgais komponents.
| Zabbix komponents | Docker attēls |
|---|---|
| Aģents | zabbix/zabbix-agent |
| Aģents 2 | zabbix/zabbix-agent2 |
| Serveris (MySQL) | zabbix/zabbix-server-mysql |
| Serveris (PostgreSQL) | zabbix/zabbix-server-pgsql |
| Lietotāja saskarne (Apache + MySQL) | zabbix/zabbix-web-apache-mysql |
| Lietotāja saskarne (Apache + PostgreSQL) | zabbix/zabbix-web-apache-pgsql |
| Lietotāja saskarne (Nginx + MySQL) | zabbix/zabbix-web-nginx-mysql |
| Lietotāja saskarne (Nginx + PostgreSQL) | zabbix/zabbix-web-nginx-pgsql |
| Starpniekserveris (SQLite3) | zabbix/zabbix-proxy-sqlite3 |
| Starpniekserveris (MySQL) | zabbix/zabbix-proxy-mysql |
| Java gateway | zabbix/zabbix-java-gateway |
| Web service | zabbix/zabbix-web-service |
| SNMP traps | zabbix/zabbix-snmptraps |
Lai izmantotu SNMP traps, SNMP traps konteineram ir jāizmanto kopīgs sējums ar Zabbix serveris vai starpniekserveris konteineru (skatiet kā izmantot šo attēlu Docker Hub un tālāk redzamo piemēru).
Visi Zabbix komponentu attēli Docker Hub ir balstīti uz jaunākajām galvenajām atbalstīto operētājsistēmu versijām. Šie attēli tiek automātiski pārbūvēti, kad tiek atjaunināti pamatā esošie OS attēli.
Attēlu tagi
Katrs attēls atbalsta tagus, lai atlasītu bāzes operētājsistēmu un Zabbix versiju:
zabbix/<image>:<os>-<version>
Atbalstītās <os> vērtības:
alpine- Alpine Linuxubuntu- Ubuntucentos- CentOS Streamol- Oracle Linuxltsc2022- Windows 11 LTSC 2022 (tikai Zabbix aģents)
Atbalstītās <version> vērtības:
latest- Jaunākā stabilā Zabbix versija uz Alpine Linux<os>-latest- Jaunākā stabilā Zabbix versija izvēlētajā OS<os>-trunk- Jaunākais izstrādes (nakts) būvējums izvēlētajā OS<os>-X.X-latest- Jaunākais Zabbix mazais laidiens konkrētai Zabbix galvenajai versijai izvēlētajā OS<os>-X.X.*- Konkrēts Zabbix mazais laidiens izvēlētajā OS
Piemēri:
# Jaunākā stabilā Zabbix starpniekserveris (SQLite3) uz Alpine Linux:
docker pull zabbix/zabbix-proxy-sqlite3:latest
# Jaunākā stabilā Zabbix starpniekserveris (SQLite3) uz Ubuntu:
docker pull zabbix/zabbix-proxy-sqlite3:ubuntu-latest
# Jaunākais Zabbix serveris (MySQL) izstrādes (nakts) būvējums uz Ubuntu:
docker pull zabbix/zabbix-server-mysql:ubuntu-trunk
# Jaunākais 7.0 mazais laidiens Zabbix serverim (MySQL) uz Alpine Linux:
docker pull zabbix/zabbix-server-mysql:alpine-7.0-latest
# Zabbix servera (MySQL) versija 7.0.1 uz Alpine Linux:
docker pull zabbix/zabbix-server-mysql:alpine-7.0.1
Docker Compose
Docker Compose ir ātrākais veids, kā izvietot Zabbix. Tas nolasa konfigurācijas failu (Compose failu) un apstrādā visu iestatīšanu — Docker attēlu lejupielādi, iekšējā tīkla izveidi starp konteineriem, krātuves iestatīšanu, datubāzes inicializēšanu un visa palaišanu pareizajā secībā.
Oficiālo Zabbix Dockerfiles repozitorijs nodrošina gatavus Docker Compose failus un uz .env balstītu konfigurācijas sistēmu, kas atbalsta dažādas operētājsistēmas, datubāzu aizmugursistēmas un Zabbix komponentu konfigurāciju.
1. Klonējiet repozitoriju, pārejiet uz to un pārslēdzieties uz 7.0 versiju:
git clone https://github.com/zabbix/zabbix-docker.git
cd zabbix-docker
git checkout 7.0
2. (Neobligāti) Pielāgojiet izvietojumu ar vides mainīgajiem. Šo soli var izlaist, ja tiek izmantota noklusējuma iestatīšana.
3. Izvietojiet noklusējuma iestatīšanu — Zabbix serveris, lietotāja saskarne (darbojas uz Nginx) un datubāzes aizmugursistēma (MySQL vai PostgreSQL), katrs savā konteinerā uz Alpine Linux.
# Ar MySQL kā datubāzi:
docker compose -f ./compose.yaml up -d
# Ar PostgreSQL kā datubāzi:
docker compose -f ./compose_pgsql.yaml up -d
Kad konteineri ir palaisti un darbojas (parasti 1–3 minūšu laikā), Zabbix serveris tiek startēts un lietotāja saskarne ir pieejama vietnē http://localhost.
Izmantojiet docker compose ps, lai pārbaudītu konteineru statusu.
Visiem konteineriem (izņemot zabbix-docker-server-db-init-1 konteineru) jābūt statusā Up.
Ja kādam ir statuss Exited, pārbaudiet to žurnālus, lai atrastu kļūdas, izmantojot docker logs -f <container-name>.
Vides mainīgie
Docker Compose darbību un Zabbix komponentu konfigurāciju var pielāgot, izmantojot vides mainīgos.
Compose līmeņa mainīgie (definēti .env failā) nosaka, kuri Docker attēli, porti un tīkla IP diapazoni tiek izmantoti.
Šos mainīgos var norādīt tieši pirms docker compose komandas vai rediģēt .env failu.
Piemēram, šāda komanda izvieto pilnu vairāku konteineru Zabbix konfigurāciju, izmantojot uz Ubuntu balstītu attēlu (nevis noklusējuma Alpine Linux) un publicējot lietotāja saskarni caur Nginx, izmantojot pielāgotus HTTP (8282) un HTTPS (8443) portus:
OS=ubuntu \
ZABBIX_WEB_NGINX_HTTP_PORT=8282 \
ZABBIX_WEB_NGINX_HTTPS_PORT=8443 \
docker compose -f ./compose.yaml up -d
Komponentu līmeņa mainīgie (definēti env_vars/.env_<component> failos) nosaka Zabbix komponentu konfigurāciju.
Pirms docker compose komandas palaišanas rediģējiet attiecīgo .env_<component> failu.
Piemēram, varat pielāgot Zabbix servera pasīvo aptaujātāju skaitu un kešatmiņas iestatījumus, kā arī konfigurēt lietotāja saskarnes laika joslu, rediģējot šādus mainīgos:
# env_vars/.env_srv
ZBX_STARTPOLLERS=20
ZBX_CACHESIZE=64M
ZBX_HISTORYCACHESIZE=32M
# env_vars/.env_web
PHP_TZ=Europe/Paris
Komponentu līmeņa vides mainīgie atbilst Zabbix komponentu konfigurācijas parametriem, izmantojot atšķirīgu nosaukumu veidošanas stilu (piem., ZBX_STARTPOLLERS atbilst StartPollers).
Daži mainīgie ir specifiski Docker, un dažus konfigurācijas parametrus nevar mainīt (piem., PIDFile un LogType).
Izmantojot vides mainīgos, lūdzu, skatiet sadaļu Environment variables katra komponenta Docker attēla aprakstā Docker Hub.
Sējumi
Docker Compose saglabā pastāvīgos datus direktorijā zbx_env/, kas tiek izveidota līdzās Compose failam.
Šī direktorija saglabā komponentu datus starp konteineru restartēšanām un atjauninājumiem.
zbx_env/ saturs katra komponenta attēlam ir iepriekš definēts. Piemēram:
zbx_env/etc/- tiek izmantots Zabbix lietotāja saskarnes konteineramzbx_env/usr/unzbx_env/var/- tiek izmantots Zabbix servera konteineram
Plašāku informāciju par katru sējumu skatiet sadaļā Atļautie sējumi katra komponenta Docker attēla aprakstā Docker Hub.
Makefile
Zabbix Dockerfiles repozitorijs arī nodrošina Makefile kā saīsni biežākajiem Docker Compose uzdevumiem.
Pilnas docker compose komandas vietā varat izmantot īsākas make komandas (palaidiet make help, lai skatītu pieejamās opcijas):
# Noklusējuma izvietojums (Zabbix serveris, lietotāja saskarne, MySQL, viss uz Alpine Linux)
make up
# Pielāgots izvietojums (Zabbix serveris, lietotāja saskarne ar pielāgotiem Nginx portiem, PostgreSQL, viss uz Ubuntu)
make up \
OS=ubuntu \
DB=pgsql \
ZABBIX_WEB_NGINX_HTTP_PORT=8282 \
ZABBIX_WEB_NGINX_HTTPS_PORT=8443
Pārtraucot vai noņemot konteinerus, vienmēr norādiet to pašu datubāzes tipu, kas tika izvietots (piem., make down DB=pgsql).
Pēc noklusējuma make up palaiž tikai minimālu pakalpojumu kopu (Zabbix serveris, lietotāja saskarne un datubāze).
Tas saglabā konfigurāciju vieglu un novērš komponentu palaišanu, kas var nebūt nepieciešami.
Lai iekļautu papildu komponentus, varat izmantot šādus Compose profilus:
# Noklusējuma izvietojums + Zabbix aģents, Java gateway, tīmekļa pakalpojums un SNMP trapi:
make up COMPOSE_PROFILES=full
# COMPOSE_PROFILES=full + Zabbix starpniekserveris (MySQL un SQLite3):
make up COMPOSE_PROFILES=all
Docker (manuāla izvietošana)
Izmantojiet manuālu izvietošanu, ja vēlaties izvietot Zabbix soli pa solim, palaist atsevišķus komponentus, integrēt tos ar esošu vidi vai izmantot alternatīvu konteineru izpildlaiku, piemēram, Podman.
Piemēram, lai izvietotu Zabbix starpniekserveri, palaidiet šādu komandu:
docker run --name zabbix-proxy-sqlite3 \
-e ZBX_SERVER_HOST=192.0.2.1 \
-e ZBX_PROXYMODE=0 \
-e ZBX_HOSTNAME=zabbix-proxy-sqlite3 \
-v zabbix-proxy-data:/var/lib/zabbix/db_data \
--init \
-d \
zabbix/zabbix-proxy-sqlite3:alpine-7.0-latest
Zabbix (7.0.0-7.0.2) nedrīkst darbināt kā PID1/init procesu konteineros.
Šī komanda:
-
Lejupielādē
zabbix/zabbix-proxy-sqlite3:alpine-7.0-latestDocker attēlu. -
Izveido un palaiž
zabbix-proxy-sqlite3konteineru, pamatojoties uz Docker attēlu (ar--initun-dkarodziņiem). -
Konfigurē Zabbix starpniekservera
Serverparametru, izmantojot vides mainīgoZBX_SERVER_HOST. Šis parametrs norāda Zabbix servera IP adresi, no kura starpniekserveris izgūs konfigurācijas datus un uz kuru tas nosūtīs savāktos datus. Ņemiet vērā, ka citi mainīgie, kas nepieciešami aktīvai starpniekservera darbībai, izmanto noklusējuma vērtības un tos var neiekļaut.
Vides mainīgie atbilst Zabbix komponentu konfigurācijas parametriem, izmantojot atšķirīgu nosaukumu veidošanas stilu (piemēram, ZBX_SERVER_HOST atbilst Server).
Daži mainīgie ir specifiski Docker, un dažus konfigurācijas parametrus nevar mainīt (piemēram, PIDFile un LogType).
Izmantojot vides mainīgos, lūdzu, skatiet sadaļu Environment variables katra komponenta Docker attēla aprakstā Docker Hub.
- Pievieno Docker pārvaldītu glabāšanas vietu (piemēram,
/var/lib/docker/volumes/zabbix-proxy-data/) konteinera/var/lib/zabbixdirektorijam, lai Zabbix starpniekservera dati tiktu saglabāti pastāvīgi, pat ja konteiners tiek noņemts.
Lai iegūtu vairāk informācijas par katru sējumu, skatiet sadaļu Allowed volumes katra komponenta Docker attēla aprakstā Docker Hub.
Pēc Zabbix starpniekservera konteinera izvietošanas varat turpināt ar starpniekservera pievienošanu savā Zabbix lietotāja saskarnē un hosts konfigurēšanu, kurus šis starpniekserveris uzraudzīs.
Tālāk redzamie piemēri aptver trīs papildu izvietošanas scenārijus:
- Zabbix serveris (MySQL) ar Java gateway
- Zabbix serveris (PostgreSQL) ar SNMP trapiem
- Zabbix serveris (MySQL) ar Java gateway uz RHEL 8–10
Lai iegūtu vairāk piemēru, lūdzu, skatiet katra komponenta Docker attēla aprakstu Docker Hub.
Zabbix servera izvietošana (MySQL) ar Java gateway
Šis piemērs parāda, kā izvietot Zabbix serveri ar MySQL aizmugursistēmu, Java gateway JMX uzraudzībai un uz Nginx balstītu lietotāja saskarni.
1. Izveidojiet atsevišķu Docker tīklu, lai visi Zabbix komponentu konteineri varētu sasniegt cits citu pēc konteinera nosaukuma:
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
2. Palaidiet tukšu MySQL servera konteineru (aizstājiet zabbix_pwd un root_pwd ar drošām parolēm un izmantojiet šīs vērtības turpmākajās darbībās):
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-oracle \
--character-set-server=utf8mb4 --collation-server=utf8mb4_bin
3. Sekojiet MySQL žurnāliem un gaidiet, līdz MySQL ir gatavs savienojumiem (izmantojiet Ctrl+C, lai izietu no žurnālu skatīšanas):
docker logs -f mysql-server
# ... [Server] /usr/sbin/mysqld: ready for connections. ...
4. Palaidiet Zabbix Java gateway konteineru:
docker run --name zabbix-java-gateway -t \
--network=zabbix-net \
--restart unless-stopped \
-d zabbix/zabbix-java-gateway:alpine-7.0-latest
5. Iespējojiet log_bin_trust_function_creators MySQL servera konteinerā.
Tas uz laiku atslābina drošības ierobežojumus saglabātajām funkcijām; iestatījums vēlākajās darbībās tiks atspējots.
Tas ļauj Zabbix datubāzes lietotājam izveidot saglabātās funkcijas bez SUPER privilēģijas, kas MySQL ir nepieciešama, ja ir iespējota binārā žurnalēšana (noklusējums kopš MySQL 8.0).
Palaidiet šādu komandu:
docker exec -it mysql-server mysql -u root -p'root_pwd' \
-e "SET GLOBAL log_bin_trust_function_creators = 1;"
6. Palaidiet Zabbix servera konteineru un savienojiet to ar Java Gateway un MySQL servera konteineriem:
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 ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--network=zabbix-net \
-p 10051:10051 \
--restart unless-stopped \
--init \
-d zabbix/zabbix-server-mysql:alpine-7.0-latest
7. Sekojiet Zabbix servera žurnāliem un gaidiet, līdz Zabbix serveris ir pabeidzis datubāzes shēmas inicializēšanu (izmantojiet Ctrl+C, lai izietu no žurnālu skatīšanas):
docker logs -f zabbix-server-mysql
# ... [info]: ** Creating 'zabbix' schema in MySQL
# ... [info]: ** Database schema successfully created!
8. Atspējojiet log_bin_trust_function_creators MySQL servera konteinerā.
Tas atkal pastiprina drošības ierobežojumu, kas neļauj lietotājiem bez SUPER privilēģijas veidot saglabātās funkcijas.
Palaidiet šādu komandu:
docker exec -it mysql-server mysql -u root -p'root_pwd' \
-e "SET GLOBAL log_bin_trust_function_creators = 0;"
9. Palaidiet Zabbix lietotāja saskarnes konteineru un savienojiet to ar Zabbix servera un MySQL servera konteineriem:
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 PHP_TZ="Europe/Riga" \
--network=zabbix-net \
-p 80:8080 \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-mysql:alpine-7.0-latest
Kad konteineri ir palaisti un darbojas, Zabbix serveris tiek startēts, un lietotāja saskarne ir pieejama vietnē http://localhost.
Izmantojiet docker ps, lai pārbaudītu konteineru statusu.
Visiem konteineriem jābūt statusā Up.
Ja kāds rāda Exited, pārbaudiet tā žurnālus, lai atrastu kļūdas, izmantojot docker logs -f <container-name>.
Zabbix servera izvietošana (PostgreSQL) ar SNMP trapiem
Šis piemērs parāda, kā izvietot Zabbix serveri ar PostgreSQL aizmugursistēmu, SNMP trapiem un uz Nginx balstītu lietotāja saskarni.
1. Izveidojiet atsevišķu Docker tīklu, lai visi Zabbix komponentu konteineri varētu sasniegt cits citu pēc konteinera nosaukuma:
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
2. Palaidiet tukšu PostgreSQL servera konteineru (aizstājiet zabbix_pwd ar drošu paroli un izmantojiet šo vērtību turpmākajās darbībās):
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. Palaidiet Zabbix SNMP trapu konteineru:
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-7.0-latest
4. Palaidiet Zabbix servera konteineru un savienojiet to ar PostgreSQL servera un SNMP trapu konteineriem:
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 \
--init \
-d zabbix/zabbix-server-pgsql:alpine-7.0-latest
5. Sekojiet Zabbix servera žurnāliem un gaidiet, līdz Zabbix serveris ir pabeidzis datubāzes shēmas inicializēšanu (izmantojiet Ctrl+C, lai izietu no žurnālu skatīšanas):
docker logs -f zabbix-server-pgsql
# ... [info]: ** Creating 'zabbix' schema in PostgreSQL
# ... [info]: ** Database schema successfully created!
6. Palaidiet Zabbix lietotāja saskarnes konteineru un savienojiet to ar Zabbix servera un PostgreSQL servera konteineriem:
docker run --name zabbix-web-nginx-pgsql -t \
-e ZBX_SERVER_HOST="zabbix-server-pgsql" \
-e DB_SERVER_HOST="postgres-server" \
-e POSTGRES_DB="zabbix" \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix_pwd" \
-e PHP_TZ="Europe/Riga" \
--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-7.0-latest
Kad konteineri ir palaisti un darbojas, Zabbix serveris tiek startēts, un lietotāja saskarne ir pieejama vietnē http://localhost.
Izmantojiet docker ps, lai pārbaudītu konteineru statusu.
Visiem konteineriem jābūt statusā Up.
Ja kāds rāda Exited, pārbaudiet tā žurnālus, lai atrastu kļūdas, izmantojot docker logs -f <container-name>.
Zabbix servera izvietošana (MySQL) ar Java gateway uz RHEL 8–10
Šis piemērs parāda, kā izvietot Zabbix serveri ar MySQL aizmugursistēmu, Java gateway JMX uzraudzībai un uz Nginx balstītu lietotāja saskarni, kas visi darbojas uz Red Hat Enterprise Linux 8, 9 vai 10.
Uz Red Hat Enterprise Linux ieteicamais konteineru izpildlaiks ir Podman, nevis Docker. Podman darbojas līdzīgi Docker, taču neprasa fonā darbojošos root pakalpojumu, tāpēc tas ir labāk piemērots Red Hat vidēm.
1. Izveidojiet jaunu podu ar nosaukumu zabbix un atvērtām Zabbix lietotāja saskarnes un Zabbix servera trappera pieslēgvietām:
podman pod create --name zabbix -p 80:8080 -p 10051:10051
2. (Neobligāti) Palaidiet Zabbix aģenta konteineru zabbix poda vidē:
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-70:latest
3. Izveidojiet ./mysql/ direktoriju RHEL resursdatorā:
mkdir -p ./mysql
4. Palaidiet tukšu MySQL servera konteineru (aizstājiet zabbix_pwd un root_pwd ar drošām parolēm un izmantojiet šīs vērtības turpmākajās darbībās):
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=utf8mb4 --collation-server=utf8mb4_bin
5. Sekojiet MySQL žurnāliem un gaidiet, līdz MySQL ir gatavs savienojumiem (izmantojiet Ctrl+C, lai izietu no žurnālu skatīšanas):
podman logs -f mysql-server
# ... [Server] /usr/sbin/mysqld: ready for connections. ...
6. Palaidiet Zabbix Java gateway konteineru:
podman run --name zabbix-java-gateway -t \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-java-gateway-70
7. Iespējojiet log_bin_trust_function_creators MySQL servera konteinerā.
Tas uz laiku atslābina drošības ierobežojumus saglabātajām funkcijām; iestatījums vēlākajās darbībās tiks atspējots.
Tas ļauj Zabbix datubāzes lietotājam izveidot saglabātās funkcijas bez SUPER privilēģijas, kas MySQL ir nepieciešama, ja ir iespējota binārā žurnalēšana (noklusējums kopš MySQL 8.0).
Palaidiet šādu komandu:
podman exec -it mysql-server mysql -u root -p'root_pwd' \
-e "SET GLOBAL log_bin_trust_function_creators = 1;"
8. Palaidiet Zabbix servera konteineru un savienojiet to ar Java Gateway un MySQL servera konteineriem:
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 ZBX_JAVAGATEWAY="127.0.0.1" \
--restart=always \
--init \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-server-mysql-70
9. Sekojiet Zabbix servera žurnāliem un gaidiet, līdz Zabbix serveris ir pabeidzis datubāzes shēmas inicializēšanu (izmantojiet Ctrl+C, lai izietu no žurnālu skatīšanas):
podman logs -f zabbix-server-mysql
# ... [info]: ** Creating 'zabbix' schema in MySQL
# ... [info]: ** Database schema successfully created!
10. Atspējojiet log_bin_trust_function_creators MySQL servera konteinerā.
Tas atkal pastiprina drošības ierobežojumu, kas neļauj lietotājiem bez SUPER privilēģijas veidot saglabātās funkcijas.
Palaidiet šādu komandu:
podman exec -it mysql-server mysql -u root -p'root_pwd' \
-e "SET GLOBAL log_bin_trust_function_creators = 0;"
11. Palaidiet Zabbix lietotāja saskarnes konteineru un savienojiet to ar Zabbix servera un MySQL servera konteineriem:
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 PHP_TZ="Europe/Riga" \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-web-mysql-70
Pods zabbix atver 80/TCP portu (HTTP) resursdatoram no zabbix-web-mysql konteinera 8080/TCP.
Kad konteineri ir palaisti un darbojas, Zabbix serveris tiek startēts, un lietotāja saskarne ir pieejama vietnē http://localhost.
Izmantojiet docker ps, lai pārbaudītu konteineru statusu.
Visiem konteineriem jābūt statusā Up.
Ja kāds rāda Exited, pārbaudiet tā žurnālus, lai atrastu kļūdas, izmantojot docker logs -f <container-name>.