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 iestatījumu, 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 ceļvedim. Izvietošanai ar Docker Compose ir nepieciešams arī Docker Compose (2.24.0 vai jaunāka versija).
Dažiem Zabbix komponentiem ir nepieciešams, lai hostā, kurā darbojas Docker, būtu atvērti noteikti porti (piemēram, 10051/TCP Zabbix serverim, 162/UDP SNMP slazdiem).
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; tie visi 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 |
| Tīmekļa saskarne (Apache + MySQL) | zabbix/zabbix-web-apache-mysql |
| Tīmekļa saskarne (Apache + PostgreSQL) | zabbix/zabbix-web-apache-pgsql |
| Tīmekļa saskarne (Nginx + MySQL) | zabbix/zabbix-web-nginx-mysql |
| Tīmekļa 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 |
| Tīmekļa pakalpojums | zabbix/zabbix-web-service |
| SNMP slazdi | zabbix/zabbix-snmptraps |
Lai izmantotu SNMP slazdus, SNMP slazdu konteineram ir jāizmanto kopīgs sējums ar Zabbix servera vai starpniekservera 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 birkas
Katrs attēls atbalsta birkas, lai izvēlētos 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 Alpine Linux<os>-latest- Jaunākā stabilā Zabbix versija izvēlētajā OS<os>-trunk- Jaunākais izstrādes (nightly) būvējums izvēlētajā OS<os>-X.X-latest- Jaunākais konkrētas Zabbix galvenās versijas Zabbix mazākais laidiens izvēlētajā OS<os>-X.X.*- Konkrēts Zabbix mazākais laidiens izvēlētajā OS
Piemēri:
# Jaunākais stabilais Zabbix starpniekserveris (SQLite3) Alpine Linux:
docker pull zabbix/zabbix-proxy-sqlite3:latest
# Jaunākais stabilais Zabbix starpniekserveris (SQLite3) Ubuntu:
docker pull zabbix/zabbix-proxy-sqlite3:ubuntu-latest
# Jaunākais Zabbix serveris (MySQL) izstrādes (nightly) būvējums Ubuntu:
docker pull zabbix/zabbix-server-mysql:ubuntu-trunk
# Jaunākais Zabbix servera (MySQL) 8.0 mazākais laidiens Alpine Linux:
docker pull zabbix/zabbix-server-mysql:alpine-8.0-latest
# Zabbix servera (MySQL) versija 8.0.1 Alpine Linux:
docker pull zabbix/zabbix-server-mysql:alpine-8.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 — lejupielādē Docker attēlus, izveido iekšējo tīklu starp konteineriem, iestata krātuvi, inicializē datubāzi un palaiž visu 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. Noklonējiet repozitoriju, pārejiet uz to un pārslēdzieties uz versiju 8.0:
git clone https://github.com/zabbix/zabbix-docker.git
cd zabbix-docker
git checkout 8.0
2. (Neobligāti) Pielāgojiet izvietošanu ar vides mainīgajiem. Šo soli var izlaist, ja tiek izmantota noklusējuma konfigurācija.
3. Izvietojiet noklusējuma konfigurāciju — 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 konteineru zabbix-docker-server-db-init-1) 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 vidi, izmantojot uz Ubuntu balstītu attēlu (nevis noklusējuma Alpine Linux) un nodrošinot piekļuvi lietotāja saskarnei 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ēram, ZBX_STARTPOLLERS atbilst StartPollers).
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.
Sējumi
Docker Compose glabā pastāvīgos datus zbx_env/ direktorijā, kas tiek izveidota līdzās Compose failam.
Šī direktorija saglabā komponentu datus starp konteineru restartēšanām un atjauninājumiem.
zbx_env/ saturs ir iepriekš noteikts katra komponenta attēlam. Piemēram:
zbx_env/etc/- izmanto Zabbix tīmekļa saskarnes konteinerszbx_env/usr/unzbx_env/var/- izmanto Zabbix servera konteiners
Papildinformāciju par katru sējumu skatiet sadaļā Allowed volumes katra komponenta Docker attēla aprakstā Docker Hub.
Makefile
Zabbix Dockerfiles repozitorijs nodrošina arī Makefile kā saīsni biežāk izmantotajiem Docker Compose uzdevumiem.
Tā vietā, lai izmantotu pilno docker compose komandu, varat izmantot īsākas make komandas (izpildiet make help, lai skatītu pieejamās opcijas):
# Noklusējuma izvietojums (Zabbix serveris, tīmekļa saskarne, MySQL, viss uz Alpine Linux)
make up
# Pielāgots izvietojums (Zabbix serveris, tīmekļa 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
Apturot vai noņemot konteinerus, vienmēr norādiet to pašu datubāzes tipu, kas tika izvietots (piemēram, make down DB=pgsql).
Pēc noklusējuma make up palaiž tikai minimālu pakalpojumu kopu (Zabbix serveri, tīmekļa saskarni un datubāzi).
Tas uztur iestatīšanu vieglu un novērš tādu 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 slazdi:
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-8.0-latest
Šī komanda:
-
Lejupielādē
zabbix/zabbix-proxy-sqlite3:alpine-8.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 iegū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īvam starpniekservera darbības režīmam, 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., ZBX_SERVER_HOST atbilst Server).
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.
- Pievieno Docker pārvaldītu glabāšanas vietu (piem.,
/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, lai tos uzraudzītu šis starpniekserveris.
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.4-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-8.0-latest
5. Iespējojiet log_bin_trust_function_creators MySQL servera konteinerā.
Tas īslaicīgi atvieglo drošības ierobežojumus saglabātajām funkcijām; vēlākajās darbībās šis iestatījums 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-8.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 atjauno 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-8.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ādam ir statuss 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-8.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-8.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-8.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ādam ir statuss 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 pakalpojumu ar root tiesībām, tāpēc tas ir labāk piemērots Red Hat vidēm.
1. Izveidojiet jaunu podu ar nosaukumu zabbix un atvērtām pieslēgvietām Zabbix lietotāja saskarnei un Zabbix servera trapperim:
podman pod create --name zabbix -p 80:8080 -p 10051:10051
2. (Neobligāti) Palaidiet Zabbix aģents konteineru zabbix poda atrašanās vietā:
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-80: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.4 \
--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-80
7. Iespējojiet log_bin_trust_function_creators MySQL servera konteinerā.
Tas īslaicīgi atvieglo drošības ierobežojumus saglabātajām funkcijām; vēlākajās darbībās šis iestatījums 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-80
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 atjauno 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-80
Pods zabbix atklāj 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ādam ir statuss Exited, pārbaudiet tā žurnālus, lai atrastu kļūdas, izmantojot docker logs -f <container-name>.