[comment]: # aside: 5

[comment]: # ({22c598e9-22c598e9})
# Zabbix aģenta 2 būvēšana operētājsistēmā Windows

[comment]: # ({/22c598e9-22c598e9})

[comment]: # ({3f913083-84651997})
#### Pārskats

Šajā lapā ir parādīts, kā izveidot Zabbix aģents 2 no pirmkoda operētājsistēmā Windows 10 (64 bitu vai 32 bitu).

Gan 32 bitu, gan 64 bitu versijas var izveidot 64 bitu platformā, taču 32 bitu platformā var izveidot tikai 32 bitu versiju.

Zabbix aģents 2 izveidei ir nepieciešams:

- MinGW būvēšanas rīki
- Go programmēšanas valoda
- OpenSSL (Zabbix [šifrēšanas](/manual/encryption) funkcijām)
- PCRE2 (Perl Compatible Regular Expressions; regulāro izteiksmju šablonu saskaņošanas funkcijām Zabbix)

Zabbix aģents 2 var izveidot, izmantojot vienu no šīm metodēm:

- [Izmantojot vcpkg](#building-zabbix-agent-2-with-vcpkg) — automatizēta pieeja, kas vienkāršo atkarību pārvaldību, izmantojot C++ pakotņu pārvaldnieku.
- [Manuāla izveide](#building-zabbix-agent-2-manually) — manuāla pieeja, kurā pirms aģents kompilēšanas ir jāinstalē visas atkarības.

::: noteimportant
Pirms būvēšanas procesa sākšanas, lūdzu, ņemiet vērā:<br><br>

- Lai izpildītu komandas, izmantojiet Command Prompt, ko palaiž lietotājs ar pietiekamām atļaujām rakstīt aizsargātās mapēs. Tomēr, instalējot [OpenSSL](#installing-openssl) un [PCRE2](#installing-pcre2), izmantojiet MSYS2 termināli.
- Ieteicams izveidot darba direktoriju `C:\Zabbix` visiem pirmkoda failiem un būvēšanas mapēm. Tomēr kompilētie komponenti jāinstalē mapē `C:\Zabbix\x64` (vai `C:\Zabbix\x86` 32 bitu būvēm).

:::

[comment]: # ({/3f913083-84651997})

[comment]: # ({6a456e90-0c4c3de2})
#### Zabbix agent 2 būvēšana ar vcpkg

Šajā sadaļā ir sniegtas instrukcijas, kā būvēt Zabbix agent ar [vcpkg](https://learn.microsoft.com/en-us/vcpkg/get_started/overview) - pakešu pārvaldnieku, kas vienkāršo atkarību pārvaldību un integrāciju ar C++ projektiem.

1\. Lejupielādējiet un instalējiet [Build Tools for Visual Studio 2022](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022).  
Instalēšanas laikā noteikti atlasiet darba slodzi *Desktop development with C++*, kas ietver vcpkg pakešu pārvaldnieku.

2\. Lejupielādējiet un instalējiet [Go](https://go.dev/dl/) (pieejams kā MSI instalators).  
Instalēšanas laikā noteikti norādiet `C:\Zabbix\Go` kā instalācijas mapi.

3\. Lejupielādējiet [MinGW distribūciju](https://github.com/niXman/mingw-builds-binaries/releases), kas izmanto Microsoft Visual C runtime bibliotēku; piemēram:

- 64 bitu būvēm: `x86_64-15.1.0-release-win32-seh-msvcrt-rt_v12-rev0.7z`
- 32 bitu būvēm: `i686-15.1.0-release-win32-dwarf-msvcrt-rt_v12-rev0.7z`

::: noteimportant
MinGW versijai ir jāatbilst [minimālajām prasībām](https://go.dev/wiki/MinimumRequirements#cgo).
:::

Pēc tam izvelciet to uz `C:\Zabbix\mingw64` (vai `C:\Zabbix\mingw32` 32 bitu būvēm).

4\. Inicializējiet vcpkg un instalējiet Zabbix agent 2 būvēšanai nepieciešamās atkarības (ņemiet vērā, ka tas var aizņemt kādu laiku):

```bash
cd C:\Zabbix

set PATH=%PATH%;"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\vcpkg"
vcpkg new --application
vcpkg add port pcre2
vcpkg add port libiconv
vcpkg add port openssl

# 64 bitu būvēm:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
vcpkg install --triplet x64-mingw-static --x-install-root=x64

# 32 bitu būvēm:
set PATH=C:\Zabbix\mingw32\bin;%PATH%
vcpkg install --triplet x86-mingw-static --x-install-root=x86
```

5\. Lejupielādējiet [Zabbix avota arhīvu](https://www.zabbix.com/download_sources#pre-release) un izvelciet to uz `C:\Zabbix\zabbix-8.0.0`.

6\. Dodieties uz Zabbix būvēšanas direktoriju (`C:\Zabbix\zabbix-8.0.0\build\mingw`) un izveidojiet šādu `build.bat` skriptu:

- 64 bitu būvēm:

```bash
:: Pievienojiet MinGW un Go sistēmas `PATH` mainīgajam pašreizējai sesijai:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%

:: Iestatiet vcpkg instalācijas ceļu:
set vcpkg="C:\Zabbix\x64\x64-mingw-static"

:: Iestatiet saistītāja karogus Crypt32 bibliotēkai:
SET CGO_LDFLAGS="-lCrypt32"

:: Palaidiet būvēšanas procesu:
mingw32-make GOFLAGS="-buildvcs=false" ARCH=AMD64 ^
    PCRE2="%vcpkg%" ^
    OPENSSL="%vcpkg%" ^
    all
```

- 32 bitu būvēm:

```bash
:: Pievienojiet MinGW un Go sistēmas `PATH` mainīgajam pašreizējai sesijai:
set PATH=C:\Zabbix\mingw32\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%

:: Iestatiet vcpkg instalācijas ceļu:
set vcpkg="C:\Zabbix\x86\x86-mingw-static"

:: Iestatiet saistītāja karogus Crypt32 bibliotēkai:
SET CGO_LDFLAGS="-lCrypt32"

:: Palaidiet būvēšanas procesu:
mingw32-make GOFLAGS="-buildvcs=false" ARCH=x86 ^
    PCRE2="%vcpkg%" ^
    OPENSSL="%vcpkg%" ^
    all
```

7\. Kompilējiet Zabbix agent 2, izpildot skriptu:

```bash
build.bat
```

Pēc kompilēšanas Zabbix agent 2 binārais fails atradīsies `C:\Zabbix\zabbix-8.0.0\bin\win64` (64 bitu būvēm) vai `C:\Zabbix\zabbix-8.0.0\bin\win32` (32 bitu būvēm).  
Zabbix agent 2 konfigurācijas faili atrodas `C:\Zabbix\zabbix-8.0.0\src\go\conf`.

Lai palaistu aģentu, nokopējiet `zabbix_agent2.exe` un tā konfigurācijas failus uz atsevišķu mapi (piemēram, `C:\Zabbix\agent2`) un pēc tam palaidiet aģentu:

```bash
mkdir C:\Zabbix\agent2

# 64 bitu būvēm:
copy C:\Zabbix\zabbix-8.0.0\bin\win64\zabbix_agent2.exe C:\Zabbix\agent2\

# 32 bitu būvēm:
copy C:\Zabbix\zabbix-8.0.0\bin\win32\zabbix_agent2.exe C:\Zabbix\agent2\

copy C:\Zabbix\zabbix-8.0.0\src\go\conf\zabbix_agent2.win.conf C:\Zabbix\agent2\
xcopy /E /I C:\Zabbix\zabbix-8.0.0\src\go\conf\zabbix_agent2.d C:\Zabbix\agent2\zabbix_agent2.d\

C:\Zabbix\agent2\zabbix_agent2.exe -c C:\Zabbix\agent2\zabbix_agent2.win.conf
```

Ja nepieciešams, turpiniet ar Zabbix agent 2 [ielādējamo spraudņu](/manual/concepts/agent2/loadable-plugins) kompilēšanu.

[comment]: # ({/6a456e90-0c4c3de2})

[comment]: # ({e4d7bbb2-83a3edaf})
##### Zabbix aģenta 2 ielādējamo spraudņu kompilēšana

1\. Lejupielādējiet [Zabbix spraudņa avotu](https://cdn.zabbix.com/zabbix-agent2-plugins/sources/), kas atbilst jūsu Zabbix aģenta 2 versijai (piem., `zabbix-agent2-plugin-postgresql-8.0.0.tar.gz`), un izvelciet to uz `C:\Zabbix`.

::: noteimportant
Pirms spraudņa instalēšanas, lūdzu, pārbaudiet tā README failu.
Tajā var būt norādītas konkrētas prasības un instalēšanas instrukcijas.
:::

2\. Pārejiet uz izvilkto spraudņa direktoriju un kompilējiet spraudni:

```bash
cd C:\Zabbix\zabbix-agent2-plugin-ember-plus-8.0.0

# 64 bitu būvēm:
mingw32-make ARCH=AMD64

# 32 bitu būvēm:
mingw32-make ARCH=x86
```

Pēc kompilēšanas Zabbix aģenta 2 spraudņa binārais fails un tā konfigurācijas fails atradīsies tajā pašā spraudņa direktorijā.

Spraudņa izpildāmo failu var novietot jebkurā vietā, ja vien Zabbix aģents 2 to var ielādēt.
Norādiet spraudņa binārā faila ceļu spraudņa konfigurācijas failā, piemēram, `postgresql.conf` failā [PostgreSQL](/manual/concepts/agent2/agent2_params_plugin/postgresql_plugin) spraudnim:

```ini
Plugins.PostgreSQL.System.Path=/path/to/executable/zabbix-agent2-plugin-postgresql
```

Spraudņa konfigurācijas faila ceļš ir jānorāda Zabbix aģenta 2 konfigurācijas faila parametrā [Include](/manual/concepts/agent2/agent2_params_win#include):

```ini
Include=/path/to/plugin/configuration/file/postgresql.conf
```

Lai iegūtu plašāku informāciju par spraudņu konfigurēšanu, pārejiet uz [iestatīšanu](/manual/concepts/agent2/agent2_params_plugin#plugin-configuration-principles).

[comment]: # ({/e4d7bbb2-83a3edaf})

[comment]: # ({b486021f-87d14870})
#### Zabbix aģents 2 manuāla būvēšana

::: noteimportant
Šī Zabbix aģents 2 būvēšanas metode ir piemērota lietotājiem, kuriem nepieciešama pilnīga kontrole pār būvēšanas vidi vai kuri strādā ierobežotā vidē, kur [vcpkg izmantošana](#building-zabbix-agent-with-vcpkg) nav iespējama.
:::

Šajā sadaļā ir sniegti norādījumi Zabbix aģents 2 manuālai būvēšanai, tostarp nepieciešamo būvēšanas rīku un atkarību instalēšanai, kā arī pēc tam aģenta kompilēšanai.

[comment]: # ({/b486021f-87d14870})

[comment]: # ({9af55055-2a4da91c})
##### Būvēšanas rīku iestatīšana

1\. Lejupielādējiet un instalējiet [MSYS2](https://www.msys2.org/) (pieejams kā MSI instalators).
Instalēšanas laikā noteikti norādiet `C:\Zabbix\msys64` kā instalācijas mapi.

2\. Lejupielādējiet un instalējiet [Go](https://go.dev/dl/) (pieejams kā MSI instalators; skatiet pašlaik atbalstītās [Go versijas](/manual/installation/requirements#agent-2)).
Instalēšanas laikā noteikti norādiet `C:\Zabbix\Go` kā instalācijas mapi.

3\. Lejupielādējiet [MinGW izplatīšanu](https://github.com/niXman/mingw-builds-binaries/releases), kas izmanto Microsoft Visual C runtime bibliotēku; piemēram:

- 64 bitu būvēm: `x86_64-15.1.0-release-win32-seh-msvcrt-rt_v12-rev0.7z`
- 32 bitu būvēm: `i686-15.1.0-release-win32-dwarf-msvcrt-rt_v12-rev0.7z`

::: noteimportant
MinGW versijai ir jāatbilst [minimālajām prasībām](https://go.dev/wiki/MinimumRequirements#cgo).
:::

Pēc tam izvelciet to uz `C:\Zabbix\mingw64` (vai `C:\Zabbix\mingw32` 32 bitu būvēm).

[comment]: # ({/9af55055-2a4da91c})

[comment]: # ({e5544a26-822e5b3f})
##### OpenSSL instalēšana

::: noteclassic
Lai kompilētu Zabbix aģents bez TLS atbalsta, pārejiet uz sadaļu [PCRE2 instalēšana](#installing-pcre2).
:::

1\. Atveriet MSYS2 MSYS termināli ar administratora tiesībām un izpildiet šādas komandas:

```bash
pacman -S perl-Locale-Maketext-Simple
pacman -S nasm
pacman -S make
pacman -S cmake
```

2\. Lejupielādējiet [OpenSSL pirmkoda arhīvu](https://openssl-library.org/source/) un izpakojiet to uz `C:\Zabbix\openssl-3.5.0`.

3\. Pārejiet uz izpakoto OpenSSL direktoriju un izveidojiet šādu `build.sh` skriptu:

- 64 bitu būvējumiem:

```bash
#!/usr/bin/env bash

export PATH="/c/Zabbix/mingw64/bin:$PATH"
export d="/c/Zabbix/x64/OpenSSL-Win64-350-static"

perl Configure mingw64 no-shared no-capieng no-winstore no-srp no-gost no-dgram no-dtls1-method no-dtls1_2-method thread_scheme=winthreads --api=1.1.0 --prefix=$d --openssldir=$d

make
make install
```

- 32 bitu būvējumiem:

```bash
#!/usr/bin/env bash

export PATH="/c/Zabbix/mingw32/bin:$PATH"
export d="/c/Zabbix/x86/OpenSSL-Win64-350-static"

perl Configure mingw no-shared no-capieng no-winstore no-srp no-gost no-dgram no-dtls1-method no-dtls1_2-method thread_scheme=winthreads --api=1.1.0 --prefix=$d --openssldir=$d

make
make install
```

::: noteimportant
Pārliecinieties, ka lietotājiem bez administratora tiesībām ir atņemtas rakstīšanas tiesības uz direktoriju `C:\Zabbix\x64\OpenSSL-Win64-350-static`.
Pretējā gadījumā aģents ielādēs SSL iestatījumus no ceļa, ko var mainīt lietotāji bez paaugstinātām tiesībām, radot iespējamu drošības ievainojamību.
:::

- Opcija `no-shared` padara OpenSSL statiskās bibliotēkas libcrypto.lib un libssl.lib pašpietiekamas, tādēļ Zabbix binārie faili ietver OpenSSL bez nepieciešamības pēc ārējām DLL.
  Tas nozīmē, ka Zabbix bināros failus var kopēt uz citām Windows iekārtām bez OpenSSL bibliotēkām; tomēr, kad tiek izlaista jauna OpenSSL kļūdu labojumu versija, Zabbix aģents būs jāpārkompilē.
- Bez opcijas `no-shared` Zabbix izpildlaikā paļaujas uz OpenSSL DLL.
  Tas nozīmē, ka OpenSSL atjauninājumiem var nebūt nepieciešama Zabbix aģents pārkompilēšana; tomēr, kopējot to uz citām iekārtām, ir jākopē arī OpenSSL DLL.

Plašāku informāciju par citām OpenSSL konfigurācijas opcijām skatiet [OpenSSL dokumentācijā](https://github.com/openssl/openssl/blob/master/INSTALL.md#configuration-options).

4\. Konfigurējiet un instalējiet OpenSSL, izpildot skriptu (ņemiet vērā, ka tas var aizņemt kādu laiku):

```bash
cd /c/Zabbix/openssl-3.5.0
./build.sh
```

[comment]: # ({/e5544a26-822e5b3f})

[comment]: # ({418b9da1-bf2f316b})
##### PCRE2 instalēšana

1\. Lejupielādējiet [PCRE2 pirmkoda arhīvu](https://github.com/PCRE2Project/pcre2/releases/latest) un izpakojiet to uz `C:\Zabbix\pcre2-10.45`.

2\. Atveriet MSYS2 MSYS termināli ar administratora tiesībām.
Pēc tam izveidojiet `build` direktoriju izpakotajā PCRE2 direktorijā un pārejiet uz to:

```bash
mkdir /c/Zabbix/pcre2-10.45/build
cd /c/Zabbix/pcre2-10.45/build
```

3\. Konfigurējiet PCRE2:

```bash
# 64 bitu būvējumiem:
export PATH="/c/Zabbix/mingw64/bin:$PATH"
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS="-O2 -g" -DCMAKE_INSTALL_PREFIX="/c/Zabbix/x64/PCRE2" ..

# 32 bitu būvējumiem:
export PATH="/c/Zabbix/mingw32/bin:$PATH"
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS="-m32 -O2 -g" -DCMAKE_EXE_LINKER_FLAGS="-Wl,-mi386pe" -DCMAKE_INSTALL_PREFIX="/c/Zabbix/x86/PCRE2" ..
```

::: noteclassic
Ja rodas jebkādas kļūdas, pirms atkārtota CMake būvēšanas procesa mēģinājuma ieteicams dzēst CMake kešatmiņu.
Kešatmiņa (`CMakeCachecache.txt`) var atrasties izpakotās PCRE2 direktorijas build direktorijā.
:::

4\. Instalējiet PCRE2:

```bash
make install
```

[comment]: # ({/418b9da1-bf2f316b})

[comment]: # ({ffffd3cc-1d340ab8})
##### Zabbix aģenta 2 kompilēšana

1\. Lejupielādējiet [Zabbix pirmkoda arhīvu](https://www.zabbix.com/download_sources#pre-release) un izpakojiet to uz `C:\Zabbix\zabbix-8.0.0`.

Ja jums ir nepieciešams ģenerēt pirmkoda arhīvu no neapstrādātas pirmkoda repozitorija versijas (piemēram, lai lietotu pielāgotus ielāpus vai veidotu no jaunākā pirmkoda), izpildiet tālāk norādītās komandas **Linux** datorā ar instalētu [Go](https://go.dev/) (nepieciešams Zabbix aģenta 2 konfigurēšanai):

```bash
git clone https://git.zabbix.com/scm/zbx/zabbix.git
cd zabbix
./bootstrap.sh
./configure --enable-agent2 --enable-ipv6 --prefix=`pwd`
make dist
```

Tādējādi tiks izveidots pirmkoda arhīvs, kuru pēc tam var kopēt uz Windows datoru.

2\. Atveriet komandrindu ar administratora tiesībām.
Pēc tam pārejiet uz Zabbix būvēšanas direktoriju un kompilējiet Zabbix aģentu;
pārliecinieties, ka ir pareizi norādīti direktoriji, kuros ir instalēti OpenSSL un PCRE2:

- 64 bitu būvēm:

```bash
cd C:\Zabbix\zabbix-8.0.0\build\mingw
set PATH=C:\Zabbix\mingw64\bin;%PATH%
mklink /D C:\Zabbix\x64\OpenSSL-Win64-350-static\lib C:\Zabbix\x64\OpenSSL-Win64-350-static\lib64

# With TLS support:
mingw32-make ARCH=AMD64 PCRE2="C:\Zabbix\x64\PCRE2" OPENSSL="C:\Zabbix\x64\OpenSSL-Win64-350-static"

# Without TLS support:
mingw32-make ARCH=AMD64 PCRE2="C:\Zabbix\x64\PCRE2"
```

- 32 bitu būvēm:

```bash
cd C:\Zabbix\zabbix-8.0.0\build\mingw
set PATH=C:\Zabbix\mingw32\bin;%PATH%

# With TLS support:
mingw32-make ARCH=x86 PCRE2="C:\Zabbix\x86\PCRE2" OPENSSL="C:\Zabbix\x86\OpenSSL-Win64-350-static"

# Without TLS support:
mingw32-make ARCH=x86 PCRE2="C:\Zabbix\x86\PCRE2"
```

Pēc kompilēšanas Zabbix aģenta 2 binārais fails atradīsies `C:\Zabbix\zabbix-8.0.0\bin\win64` (vai `C:\Zabbix\zabbix-8.0.0\bin\win32` 32 bitu būvēm).
Zabbix aģenta 2 konfigurācijas faili atrodas `C:\Zabbix\zabbix-8.0.0\src\go\conf`.

Lai palaistu aģentu, nokopējiet `zabbix_agent2.exe` bināro failu un tā konfigurācijas failus uz atsevišķu mapi (piemēram, `C:\Zabbix\agent2`) un pēc tam palaidiet aģentu:

```bash
mkdir C:\Zabbix\agent2
copy C:\Zabbix\zabbix-8.0.0\bin\win64\zabbix_agent2.exe C:\Zabbix\agent2\
copy C:\Zabbix\zabbix-8.0.0\src\go\conf\zabbix_agent2.win.conf C:\Zabbix\agent2\
xcopy /E /I C:\Zabbix\zabbix-8.0.0\src\go\conf\zabbix_agent2.d C:\Zabbix\agent2\zabbix_agent2.d\

C:\Zabbix\agent2\zabbix_agent2.exe -c C:\Zabbix\agent2\zabbix_agent2.win.conf
```

Ja nepieciešams, turpiniet ar [Zabbix aģenta 2 ielādējamo spraudņu kompilēšanu](#compiling-zabbix-agent-2-loadable-plugins).

[comment]: # ({/ffffd3cc-1d340ab8})
