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

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

[comment]: # ({52adc319-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.

::: noteimportant
Kopš Zabbix 6.0 deterministiskie trigeri ir jāizveido instalēšanas laikā.
Ja MySQL/MariaDB ir iespējota binārā žurnālfailu veidošana, tam ir nepieciešamas superlietotāja tiesības vai arī jāiestata mainīgais/konfigurācijas parametrs `log_bin_trust_function_creators = 1`.
Norādījumus par mainīgā iestatīšanu skatiet sadaļā [Datubāzes izveides skripti](/manual/appendix/install/db_scripts#mysqlmariadb).
<br><br>
Ņemiet vērā, ka, ja izpilde notiek no konsoles, mainīgais tiks iestatīts tikai uz laiku un tiks noņemts, kad Docker tiks restartēts.
Šādā gadījumā atstājiet SQL pakalpojumu darbībā, apturiet tikai `zabbix-server` pakalpojumu, izpildot `docker compose down zabbix-server`, un pēc tam `docker compose up -d zabbix-server`.
<br><br>
Alternatīvi šo mainīgo var iestatīt konfigurācijas failā.
:::

[comment]: # ({/52adc319-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/)|
|Tīmekļa pakalpojums|[zabbix/zabbix-web-service](https://hub.docker.com/r/zabbix/zabbix-web-service)|
|SNMP trapi|[zabbix/zabbix-snmptraps](https://hub.docker.com/r/zabbix/zabbix-snmptraps/)|

::: noteclassic
Lai izmantotu [SNMP trapi](/manual/config/items/itemtypes/snmptrap), SNMP trapu konteineram ir jāizmanto kopīgs sējums ar Zabbix servera vai starpniekservera 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 versijām no [atbalstītajām operētājsistēmām](#image-tags).
Šie attēli tiek automātiski pārbūvēti, kad tiek atjaunināti pamatā esošie OS attēli.

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

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

Katrs attēls atbalsta tagus, lai izvēlētos 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.4 mazais laidiens Zabbix serverim (MySQL) uz Alpine Linux:
docker pull zabbix/zabbix-server-mysql:alpine-7.4-latest

# Zabbix servera (MySQL) versija 7.4.1 uz Alpine Linux:
docker pull zabbix/zabbix-server-mysql:alpine-7.4.1
```

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

[comment]: # ({af1bb4ea-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 — 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ālais 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āzes aizmugursistēmas un Zabbix komponentu konfigurāciju.

1\. Klonējiet repozitoriju, pārejiet uz to un pārslēdzieties uz versiju 7.4:

```bash
git clone https://github.com/zabbix/zabbix-docker.git
cd zabbix-docker
git checkout 7.4
```

2\. (Pēc izvēles) Pielāgojiet izvietošanu ar [vides mainīgajiem](#environment-variables).
Šo soli var izlaist noklusējuma iestatīšanai.

3\. Izvietojiet noklusējuma iestatījumu — Zabbix serveris, tīmekļa 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 konteineru `zabbix-docker-server-db-init-1`) jābūt statusā `Up`.
Ja kādam ir statuss `Exited`, pārbaudiet tā žurnālus ar `docker logs <container-name>`.
:::

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

[comment]: # ({8b4e2b4d-de9f41d4})
#### 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.4/.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 arī 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 atverot 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.4/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ēram, `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ēram, `PIDFile` un `LogType`).
Izmantojot vides mainīgos, lūdzu, skatiet katra komponenta [Docker attēla](#available-docker-images) apraksta sadaļu *Environment variables* Docker Hub.
:::

[comment]: # ({/8b4e2b4d-de9f41d4})

[comment]: # ({15680aeb-7d10f7dc})
#### Sējumi

Docker Compose saglabā 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š definēts katra komponenta attēlam. Piemēram:

-   `zbx_env/etc/` - tiek izmantots [Zabbix lietotāja saskarnes konteiners](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 konteiners](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]: # ({d348b483-fb9850d6})
#### Makefile

Zabbix Dockerfiles repozitorijs arī nodrošina [Makefile](https://github.com/zabbix/zabbix-docker/blob/7.4/Makefile) kā saīsni biežākajiem Docker Compose uzdevumiem.
Pilnas `docker compose` komandas vietā varat izmantot īsākas `make` komandas (izpildiet `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 padara iestatījumu vieglāku 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]: # ({/d348b483-fb9850d6})

[comment]: # ({1c8231dd-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.4-latest
```

Šī komanda:

-   Lejupielādē `zabbix/zabbix-proxy-sqlite3:alpine-7.4-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., `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., `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 krātuves vietu (piem., `/var/lib/docker/volumes/zabbix-proxy-data/`) konteinera `/var/lib/zabbix` direktorijam, lai Zabbix starpniekservera dati tiktu saglabāti pastāvīgi pat tad, 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), 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

Lai iegūtu vairāk piemēru, lūdzu, skatiet katra komponenta [Docker attēla](#available-docker-images) aprakstu Docker Hub.

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

[comment]: # ({fecc21f2-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):

```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 \
  --default-authentication-plugin=mysql_native_password
```

::: noteimportant
Ja izmantojat Docker attēlu MySQL 8.4 vai jaunākai versijai, aizstājiet `--default-authentication-plugin=mysql_native_password` ar `--authentication-policy=caching_sha2_password`.
<br><br>
MySQL ir pilnībā jāinicializē pirms Zabbix servera konteinera palaišanas 4. solī, pretējā gadījumā Zabbix shēma var netikt ielādēta pareizi.
Lai apstiprinātu, ka MySQL ir gatavs, palaidiet `docker logs mysql-server` un turpiniet tikai tad, kad redzat `/usr/sbin/mysqld: ready for connections`.
:::

3\. 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.4-latest
```

4\. Palaidiet Zabbix servera konteineru un savienojiet to ar MySQL servera konteineru (aizstājiet `zabbix_pwd` un `root_pwd` ar tām pašām parolēm, kas izmantotas 2. solī):

```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 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-7.4-latest
```

::: noteimportant
Pēc Zabbix servera konteinera palaišanas uzgaidiet, līdz Zabbix serveris pabeidz datubāzes shēmas inicializēšanu.
Lai apstiprinātu, ka tas ir gatavs, palaidiet `docker logs zabbix-server-mysql` un turpiniet tikai tad, kad vairs neredzat `Creating 'zabbix' schema in MySQL`.
:::

5\. Palaidiet Zabbix lietotāja saskarnes konteineru un savienojiet to ar Zabbix servera un MySQL servera konteineriem (aizstājiet `zabbix_pwd` un `root_pwd` ar tām pašām parolēm, kas izmantotas 2. solī):

```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 MYSQL_ROOT_PASSWORD="root_pwd" \
  --network=zabbix-net \
  -p 80:8080 \
  --restart unless-stopped \
  -d zabbix/zabbix-web-nginx-mysql:alpine-7.4-latest
```

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

#### 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):

```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.4-latest
```

4\. Palaidiet Zabbix servera konteineru, savienojiet to ar PostgreSQL servera konteineru un SNMP trapu konteineru (aizstājiet `zabbix_pwd` ar to pašu paroli, kas izmantota 2. solī):

```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 \
  -d zabbix/zabbix-server-pgsql:alpine-7.4-latest
```

::: noteimportant
Pēc Zabbix servera konteinera palaišanas uzgaidiet, līdz Zabbix serveris pabeidz datubāzes shēmas inicializēšanu.
Lai apstiprinātu, ka tas ir gatavs, palaidiet `docker logs zabbix-server-pgsql` un turpiniet tikai tad, kad vairs neredzat `Creating 'zabbix' schema in PostgreSQL`.
:::

5\. Palaidiet Zabbix lietotāja saskarnes konteineru un savienojiet to ar Zabbix servera un PostgreSQL servera konteineriem (aizstājiet `zabbix_pwd` ar to pašu paroli, kas izmantota 2. solī):

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

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

#### 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 Red Hat Enterprise Linux 8, 9 vai 10.

Red Hat Enterprise Linux vidē ieteicamais konteineru izpildlaiks ir Podman, nevis Docker.
Podman darbojas līdzīgi Docker, taču tam nav nepieciešams fonā darbojošs pakalpojums ar root tiesībām, tāpēc tas ir piemērotāks 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:

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

```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 \
  --default-authentication-plugin=mysql_native_password
```

::: noteimportant
Ja izmantojat Docker attēlu MySQL 8.4 vai jaunākai versijai, aizstājiet `--default-authentication-plugin=mysql_native_password` ar `--authentication-policy=caching_sha2_password`.
<br><br>
MySQL ir pilnībā jāinicializē pirms Zabbix servera konteinera palaišanas 6. solī, pretējā gadījumā Zabbix shēma var netikt ielādēta pareizi.
Lai apstiprinātu, ka MySQL ir gatavs, palaidiet `podman logs mysql-server` un turpiniet tikai tad, kad redzat `/usr/sbin/mysqld: ready for connections`.
:::

5\. 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-74
```

6\. Palaidiet Zabbix servera konteineru (aizstājiet `zabbix_pwd` un `root_pwd` ar tām pašām parolēm, kas izmantotas 4. solī):

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

7\. Palaidiet Zabbix lietotāja saskarnes konteineru (aizstājiet `zabbix_pwd` un `root_pwd` ar tām pašām parolēm, kas izmantotas 4. solī):

```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 MYSQL_ROOT_PASSWORD="root_pwd" \
  --restart=always \
  --pod=zabbix \
  -d registry.connect.redhat.com/zabbix/zabbix-web-mysql-74
```

::: noteclassic
`zabbix` pods atklāj `80/TCP` portu (HTTP) resursdatorā no `zabbix-web-mysql` konteinera `8080/TCP`.
:::

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