[comment]: # ({e62e1497-e62e1497})
# 5 Instalēšana no konteineriem

[comment]: # ({/e62e1497-e62e1497})

[comment]: # ({5f71f243-a3ac452e})
### Pārskats

Šajā lapā ir aprakstīts, kā izvietot Zabbix, izmantojot Docker vai Docker Compose.

[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)](#docker-manual-deployment) sasniedz to pašu rezultātu, izvietojot katru komponentu soli pa solim.

[comment]: # ({/5f71f243-a3ac452e})

[comment]: # ({b13b686a-fba82ded})
### 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](https://docs.docker.com/engine/install/).
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](/manual/installation/requirements#default-port-numbers).
Zabbix serverim un aģentam noklusējuma portu var mainīt, attiecīgajā konteinerā iestatot vides mainīgo `ZBX_LISTENPORT`.

[comment]: # ({/b13b686a-fba82ded})

[comment]: # ({6c7779eb-f9acea87})
### Pieejamie Docker attēli

Zabbix nodrošina Docker attēlu katram Zabbix komponentam, un visi tie ir publicēti [Docker Hub](https://hub.docker.com/u/zabbix).
Katrs attēls tiek izmantots, lai izveidotu konteineru, kurā darbojas attiecīgais komponents.

|Zabbix komponents|Docker attēls|
|--|--------|
|Aģents|[zabbix/zabbix-agent](https://hub.docker.com/r/zabbix/zabbix-agent/)|
|Aģents 2|[zabbix/zabbix-agent2](https://hub.docker.com/r/zabbix/zabbix-agent2)|
|Serveris (MySQL)|[zabbix/zabbix-server-mysql](https://hub.docker.com/r/zabbix/zabbix-server-mysql/)|
|Serveris (PostgreSQL)|[zabbix/zabbix-server-pgsql](https://hub.docker.com/r/zabbix/zabbix-server-pgsql/)|
|Lietotāja saskarne (Apache + MySQL)|[zabbix/zabbix-web-apache-mysql](https://hub.docker.com/r/zabbix/zabbix-web-apache-mysql/)|
|Lietotāja saskarne (Apache + PostgreSQL)|[zabbix/zabbix-web-apache-pgsql](https://hub.docker.com/r/zabbix/zabbix-web-apache-pgsql/)|
|Lietotāja saskarne (Nginx + MySQL)|[zabbix/zabbix-web-nginx-mysql](https://hub.docker.com/r/zabbix/zabbix-web-nginx-mysql/)|
|Lietotāja saskarne (Nginx + PostgreSQL)|[zabbix/zabbix-web-nginx-pgsql](https://hub.docker.com/r/zabbix/zabbix-web-nginx-pgsql/)|
|Starpniekserveris (SQLite3)|[zabbix/zabbix-proxy-sqlite3](https://hub.docker.com/r/zabbix/zabbix-proxy-sqlite3/)|
|Starpniekserveris (MySQL)|[zabbix/zabbix-proxy-mysql](https://hub.docker.com/r/zabbix/zabbix-proxy-mysql/)|
|Java gateway|[zabbix/zabbix-java-gateway](https://hub.docker.com/r/zabbix/zabbix-java-gateway/)|
|Web service|[zabbix/zabbix-web-service](https://hub.docker.com/r/zabbix/zabbix-web-service)|
|SNMP traps|[zabbix/zabbix-snmptraps](https://hub.docker.com/r/zabbix/zabbix-snmptraps/)|

::: noteclassic
Lai izmantotu [SNMP traps](/manual/config/items/itemtypes/snmptrap), SNMP traps konteineram ir jāizmanto kopīgs sējums ar Zabbix serveris vai starpniekserveris konteineru (skatiet [kā izmantot šo attēlu](https://hub.docker.com/r/zabbix/zabbix-snmptraps#how-to-use-this-image) Docker Hub un tālāk redzamo [piemēru](#deploy-zabbix-server-postgresql-with-snmp-traps)).
:::

Visi Zabbix komponentu attēli Docker Hub ir balstīti uz jaunākajām galvenajām [atbalstīto operētājsistēmu](#image-tags) versijām.
Šie attēli tiek automātiski pārbūvēti, kad tiek atjaunināti pamatā esošie OS attēli.

[comment]: # ({/6c7779eb-f9acea87})

[comment]: # ({a7a01d95-e498c2aa})
#### Attēlu tagi

Katrs attēls atbalsta tagus, lai atlasītu bāzes operētājsistēmu un Zabbix versiju:

```default
zabbix/<image>:<os>-<version>
```

Atbalstītās `<os>` vērtības:

-   `alpine` - Alpine Linux
-   `ubuntu` - Ubuntu
-   `centos` - CentOS Stream
-   `ol` - Oracle Linux
-   `ltsc2022` - 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:

```bash
# 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
```

[comment]: # ({/a7a01d95-e498c2aa})

[comment]: # ({a76784bc-c443c22e})
### 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](https://github.com/zabbix/zabbix-docker) 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:

```bash
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](#environment-variables).
Š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.

```bash
# 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`.

::: noteclassic
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>`.
:::

[comment]: # ({/a76784bc-c443c22e})

[comment]: # ({c9a11d44-0be3c140})
#### 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ā](https://github.com/zabbix/zabbix-docker/blob/7.0/.env)) 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:

```bash
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>`](https://github.com/zabbix/zabbix-docker/blob/7.0/env_vars/) 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:

```ini
# env_vars/.env_srv
ZBX_STARTPOLLERS=20
ZBX_CACHESIZE=64M
ZBX_HISTORYCACHESIZE=32M

# env_vars/.env_web
PHP_TZ=Europe/Paris
```

::: noteclassic
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`](/manual/appendix/config/zabbix_server#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](#available-docker-images) aprakstā Docker Hub.
:::

[comment]: # ({/c9a11d44-0be3c140})

[comment]: # ({15680aeb-7d10f7dc})
#### 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 konteineram](https://hub.docker.com/r/zabbix/zabbix-web-nginx-mysql#allowed-volumes-for-the-zabbix-web-interface-container)
-   `zbx_env/usr/` un `zbx_env/var/` - tiek izmantots [Zabbix servera konteineram](https://hub.docker.com/r/zabbix/zabbix-server-mysql#allowed-volumes-for-the-zabbix-server-container)

Plašāku informāciju par katru sējumu skatiet sadaļā *Atļautie sējumi* katra komponenta [Docker attēla](#available-docker-images) aprakstā Docker Hub.

[comment]: # ({/15680aeb-7d10f7dc})

[comment]: # ({4287ef6f-fb9850d6})
#### Makefile

Zabbix Dockerfiles repozitorijs arī nodrošina [Makefile](https://github.com/zabbix/zabbix-docker/blob/7.0/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):

```bash
# 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
```

::: noteimportant
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](https://docs.docker.com/compose/how-tos/profiles/):

```bash
# 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
```

[comment]: # ({/4287ef6f-fb9850d6})

[comment]: # ({ec9e0e44-0b4b68c7})
### 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:

```bash
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
```

:::noteimportant
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-latest` [Docker attēlu](#available-docker-images).

-   Izveido un palaiž `zabbix-proxy-sqlite3` konteineru, pamatojoties uz Docker attēlu (ar [`--init`](https://docs.docker.com/reference/cli/docker/container/run/#init) un [`-d`](https://docs.docker.com/reference/cli/docker/container/run/#detach) karodziņiem).

-   Konfigurē Zabbix starpniekservera [`Server`](/manual/appendix/config/zabbix_proxy#server) parametru, izmantojot vides mainīgo `ZBX_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.

::: noteclassic
Vides mainīgie atbilst Zabbix komponentu konfigurācijas parametriem, izmantojot atšķirīgu nosaukumu veidošanas stilu (piemēram, `ZBX_SERVER_HOST` atbilst [`Server`](/manual/appendix/config/zabbix_proxy#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](#available-docker-images) aprakstā Docker Hub.
:::

-   Pievieno Docker pārvaldītu glabāšanas vietu (piemēram, `/var/lib/docker/volumes/zabbix-proxy-data/`) konteinera `/var/lib/zabbix` direktorijam, lai Zabbix starpniekservera dati tiktu saglabāti pastāvīgi, pat ja konteiners tiek noņemts.

::: noteclassic
Lai iegūtu vairāk informācijas par katru sējumu, skatiet sadaļu *Allowed volumes* katra komponenta [Docker attēla](#available-docker-images) aprakstā Docker Hub.
:::

Pēc Zabbix starpniekservera konteinera izvietošanas varat turpināt ar [starpniekservera pievienošanu](/manual/distributed_monitoring/proxies#configuration) savā Zabbix lietotāja saskarnē un [hosts konfigurēšanu](/manual/config/hosts/host#configuration), 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](#available-docker-images) aprakstu Docker Hub.

[comment]: # ({/ec9e0e44-0b4b68c7})

[comment]: # ({a807fe94-492bd3ba})
#### 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](/manual/config/items/itemtypes/jmx_monitoring) 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:

```bash
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):

```bash
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):

```bash
docker logs -f mysql-server

# ... [Server] /usr/sbin/mysqld: ready for connections. ...
```

4\. Palaidiet Zabbix Java gateway konteineru:

```bash
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](https://dev.mysql.com/doc/refman/8.0/en/stored-programs-logging.html) (noklusējums kopš MySQL 8.0).
Palaidiet šādu komandu:

```bash
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:

```bash
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):

```bash
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:

```bash
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:

```bash
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`.

::: noteclassic
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](/manual/config/items/itemtypes/snmptrap) 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:

```bash
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):

```bash
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:

```bash
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:

```bash
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):

```bash
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:

```bash
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`.

::: noteclassic
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](/manual/config/items/itemtypes/jmx_monitoring) 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:

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

2\. (Neobligāti) Palaidiet Zabbix aģenta konteineru `zabbix` poda vidē:

```bash
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ā:

```bash
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):

```bash
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):

```bash
podman logs -f mysql-server

# ... [Server] /usr/sbin/mysqld: ready for connections. ...
```

6\. Palaidiet Zabbix Java gateway konteineru:

```bash
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](https://dev.mysql.com/doc/refman/8.0/en/stored-programs-logging.html) (noklusējums kopš MySQL 8.0).
Palaidiet šādu komandu:

```bash
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:

```bash
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):

```bash
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:

```bash
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:

```bash
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
```

::: noteclassic
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`.

::: noteclassic
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>`.
:::

[comment]: # ({/a807fe94-492bd3ba})
