Zabbix aģenta 2 būvēšana operētājsistēmā Windows

Pārskats

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

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

Lai izveidotu Zabbix aģentu 2, nepieciešams:

  • MinGW būvēšanas rīki
  • Go programmēšanas valoda
  • OpenSSL (Zabbix šifrēšanas funkcijām)
  • PCRE2 (ar Perl saderīgas regulārās izteiksmes; Zabbix regulāro izteiksmju modeļu atbilstības funkcijām)

Zabbix aģentu 2 var izveidot, izmantojot kādu no tālāk norādītajām metodēm:

  • Izmantojot vcpkg—automatizēta pieeja, kas vienkāršo atkarību pārvaldību, izmantojot C++ pakotņu pārvaldnieku.
  • Manuāla izveide—manuāla pieeja, kuras gadījumā pirms aģenta kompilēšanas jāinstalē visas atkarības.

Pirms izveides procesa sākšanas ņemiet vērā:

  • Lai izpildītu komandas, izmantojiet komandu uzvedni, kas palaista lietotāja vārdā ar pietiekamām atļaujām rakstīt aizsargātās mapēs. Tomēr, instalējot OpenSSL un PCRE2, izmantojiet MSYS2 termināli.
  • Ieteicams izveidot darba direktoriju C:\Zabbix, kurā glabāt visus pirmkoda failus un izveides mapes. Tomēr kompilētie komponenti jāinstalē mapē C:\Zabbix\x64 (vai C:\Zabbix\x86 32 bitu izveidēm).

Zabbix aģenta 2 izveide, izmantojot vcpkg

Šajā sadaļā ir sniegti norādījumi par Zabbix aģenta izveidi, izmantojot vcpkg — pakotņ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.
Instalēšanas laikā noteikti atlasiet Desktop development with C++ darba slodzi, kurā ir iekļauts vcpkg pakotņu pārvaldnieks.

2. Lejupielādējiet un instalējiet Go (pieejams kā MSI instalētājs).
Instalēšanas laikā kā instalēšanas mapi noteikti norādiet C:\Zabbix\Go.

3. Lejupielādējiet MinGW izplatījumu, kas izmanto Microsoft Visual C izpildlaika bibliotēku, piemēram:

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

MinGW versijai jāatbilst minimālajām prasībām.

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

4. Inicializējiet vcpkg un instalējiet Zabbix aģenta 2 izveidei nepieciešamās atkarības (ņemiet vērā, ka tas var aizņemt zināmu laiku):

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ējumiem:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
vcpkg install --triplet x64-mingw-static --x-install-root=x64

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

5. Lejupielādējiet Zabbix pirmkoda arhīvu un izvelciet to mapē C:\Zabbix\zabbix-8.0.0.

6. Pārejiet uz Zabbix būvēšanas mapi (C:\Zabbix\zabbix-8.0.0\build\mingw) un izveidojiet tālāk norādīto build.bat skriptu:

  • 64 bitu būvējumiem:
:: Pievienojiet MinGW un Go pašreizējās sesijas sistēmas mainīgajam `PATH`:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%

:: Iestatiet vcpkg instalēšanas ceļu:
set vcpkg="C:\Zabbix\x64\x64-mingw-static"

:: Iestatiet Crypt32 bibliotēkas saistītāja karodziņus:
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ējumiem:
:: Pievienojiet MinGW un Go pašreizējās sesijas sistēmas mainīgajam `PATH`:
set PATH=C:\Zabbix\mingw32\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%

:: Iestatiet vcpkg instalēšanas ceļu:
set vcpkg="C:\Zabbix\x86\x86-mingw-static"

:: Iestatiet Crypt32 bibliotēkas saistītāja karodziņus:
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 aģentu 2, izpildot skriptu:

build.bat

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

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

mkdir C:\Zabbix\agent2

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

# 32 bitu būvējumiem:
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.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.conf

Ja nepieciešams, turpiniet ar Zabbix aģenta 2 ielādējamo spraudņu kompilēšanu.

Zabbix aģenta 2 ielādējamo spraudņu kompilēšana

1. Lejupielādējiet Zabbix spraudņa avotu, 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.

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:

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 spraudnim:

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:

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.

Zabbix aģents 2 manuāla būvēšana

Šī 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 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.

Būvēšanas rīku iestatīšana

1. Lejupielādējiet un instalējiet MSYS2 (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 (pieejams kā MSI instalators; skatiet pašlaik atbalstītās Go versijas). Instalēšanas laikā noteikti norādiet C:\Zabbix\Go kā instalācijas mapi.

3. Lejupielādējiet MinGW izplatīšanu, 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

MinGW versijai ir jāatbilst minimālajām prasībām.

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

OpenSSL instalēšana

Lai kompilētu Zabbix aģentu bez TLS atbalsta, pārejiet uz sadaļu PCRE2 instalēšana.

1. Atveriet MSYS2 MSYS termināli ar administratora privilēģijām un izpildiet šādas komandas:

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

2. Lejupielādējiet OpenSSL avota arhīvu un izvelciet to mapē C:\Zabbix\openssl-3.5.0.

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

  • 64 bitu būvējumiem:
#!/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:
#!/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

Noteikti noņemiet rakstīšanas piekļuvi direktorijai C:\Zabbix\x64\OpenSSL-Win64-350-static lietotājiem, kas nav administratori. Pretējā gadījumā aģents ielādēs SSL iestatījumus no ceļa, ko var modificēt lietotāji bez paaugstinātām privilēģijām, tādējādi radot potenciālu drošības ievainojamību.

  • Opcija no-shared padara libcrypto.lib un libssl.lib OpenSSL statiskās bibliotēkas pašpietiekamas, tāpēc Zabbix binārie faili ietver OpenSSL un tiem nav nepieciešami ārēji DLL faili. Tas nozīmē, ka Zabbix bināros failus var kopēt uz citiem Windows datoriem bez OpenSSL bibliotēkām; tomēr, izlaižot jaunu OpenSSL kļūdu labojumu versiju, Zabbix aģents būs jākompilē atkārtoti.
  • Ja opcija no-shared netiek izmantota, Zabbix izpildes laikā paļaujas uz OpenSSL DLL failiem. Tas nozīmē, ka OpenSSL atjauninājumiem var nebūt nepieciešama Zabbix aģenta atkārtota kompilēšana; tomēr, kopējot to uz citiem datoriem, ir jākopē arī OpenSSL DLL faili.

Papildinformāciju par citām OpenSSL konfigurācijas opcijām skatiet OpenSSL dokumentācijā.

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

cd /c/Zabbix/openssl-3.5.0
./build.sh
PCRE2 instalēšana

1. Lejupielādējiet PCRE2 pirmkoda arhīvu 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:

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

3. Konfigurējiet PCRE2:

# 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" ..

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:

make install
Zabbix aģenta 2 kompilēšana

1. Lejupielādējiet Zabbix pirmkoda arhīvu un izvelciet to mapē C:\Zabbix\zabbix-8.0.0.

Ja nepieciešams ģenerēt pirmkoda arhīvu no neapstrādāta pirmkoda repozitorija (piemēram, lai lietotu pielāgotus ielāpus vai veidotu no jaunākā pirmkoda), palaidiet tālāk norādītās komandas Linux datorā, kurā ir instalēts Go (nepieciešams Zabbix aģenta 2 konfigurēšanai):

git clone https://git.zabbix.com/scm/zbx/zabbix.git
cd zabbix
./bootstrap.sh
./configure
make dist

Tiks izveidots pirmkoda arhīvs, ko pēc tam var kopēt uz Windows datoru.

2. Atveriet komandu uzvedni ar administratora privilēģijām. Pēc tam pārejiet uz Zabbix būvēšanas direktoriju un kompilējiet Zabbix aģentu; noteikti pareizi norādiet direktorijas, kurās ir instalēti OpenSSL un PCRE2:

  • 64 bitu būvējumiem:
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

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

# Bez TLS atbalsta:
mingw32-make ARCH=AMD64 PCRE2="C:\Zabbix\x64\PCRE2"
  • 32 bitu būvējumiem:
cd C:\Zabbix\zabbix-8.0.0\build\mingw
set PATH=C:\Zabbix\mingw32\bin;%PATH%

# Ar TLS atbalstu:
mingw32-make ARCH=x86 PCRE2="C:\Zabbix\x86\PCRE2" OPENSSL="C:\Zabbix\x86\OpenSSL-Win32-350-static"

# Bez TLS atbalsta:
mingw32-make ARCH=x86 PCRE2="C:\Zabbix\x86\PCRE2"

Pēc kompilēšanas Zabbix aģenta 2 binārais fails atradīsies mapē C:\Zabbix\zabbix-8.0.0\bin\win64 (vai C:\Zabbix\zabbix-8.0.0\bin\win32 32 bitu būvējumiem). Zabbix aģenta 2 konfigurācijas faili atrodas mapē 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 atsevišķā mapē (piemēram, C:\Zabbix\agent2) un pēc tam palaidiet aģentu:

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

Ja nepieciešams, turpiniet ar Zabbix aģenta 2 ielādējamo spraudņu kompilēšanu.