2 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 (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 ietvaros 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 būvēšana ar vcpkg

Šajā sadaļā ir sniegtas instrukcijas, kā būvēt Zabbix aģentu ar 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, kas ietver vcpkg pakotņu pārvaldnieku.

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

3. Lejupielādējiet MinGW distribūciju, 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).

4. Inicializējiet vcpkg un instalējiet Zabbix aģenta 2 būvēšanai nepieciešamās atkarības (ņemiet vērā, ka tas var aizņemt kādu 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

# For 64-bit builds:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
vcpkg install --triplet x64-mingw-static --x-install-root=x64

# For 32-bit builds:
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 un izvelciet to uz C:\Zabbix\zabbix-7.4.0.

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

  • 64 bitu būvēm:
:: Add MinGW and Go to the system `PATH` variable for the current session:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%

:: Set vcpkg installation path:
set vcpkg="C:\Zabbix\x64\x64-mingw-static"

:: Set linker flags for Crypt32 library:
SET CGO_LDFLAGS="-lCrypt32"

:: Run the build process:
mingw32-make GOFLAGS="-buildvcs=false" ARCH=AMD64 ^
    PCRE2="%vcpkg%" ^
    OPENSSL="%vcpkg%" ^
    all
  • 32 bitu būvēm:
:: Add MinGW and Go to the system `PATH` variable for the current session:
set PATH=C:\Zabbix\mingw32\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%

:: Set vcpkg installation path:
set vcpkg="C:\Zabbix\x86\x86-mingw-static"

:: Set linker flags for Crypt32 library:
SET CGO_LDFLAGS="-lCrypt32"

:: Run the build process:
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 C:\Zabbix\zabbix-7.4.0\bin\win64 (64 bitu būvēm) vai C:\Zabbix\zabbix-7.4.0\bin\win32 (32 bitu būvēm). Zabbix aģenta 2 konfigurācijas faili atrodas C:\Zabbix\zabbix-7.4.0\src\go\conf.

Lai palaistu aģentu, kopē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:

mkdir C:\Zabbix\agent2

# For 64-bit builds:
copy C:\Zabbix\zabbix-7.4.0\bin\win64\zabbix_agent2.exe C:\Zabbix\agent2\

# For 32-bit builds:
copy C:\Zabbix\zabbix-7.4.0\bin\win32\zabbix_agent2.exe C:\Zabbix\agent2\

copy C:\Zabbix\zabbix-7.4.0\src\go\conf\zabbix_agent2.win.conf C:\Zabbix\agent2\
xcopy /E /I C:\Zabbix\zabbix-7.4.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.

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

1. Lejupielādējiet Zabbix spraudņa avotu, kas atbilst jūsu Zabbix aģents 2 versijai (piemēram, zabbix-agent2-plugin-postgresql-7.4.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 īpašas 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-7.4.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ģents 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 to var ielādēt Zabbix aģents 2. 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ģents 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ģenta 2 manuāla būvēšana

Šī Zabbix aģenta 2 būvēšanas metode ir piemērota lietotājiem, kuriem nepieciešama pilnīga kontrole pār būvēšanas vidi vai kuri atrodas ierobežotā vidē, kur vcpkg izmantošana nav iespējama.

Šajā sadaļā ir sniegtas instrukcijas Zabbix aģenta 2 manuālai būvēšanai, kas ietver nepieciešamo būvēšanas rīku un atkarību instalēšanu, kā arī pēc tam aģenta kompilēšanu.

Būvniecības 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, kuriem nav administratora tiesību. Pretējā gadījumā aģents ielādēs SSL iestatījumus no ceļa, ko var modificēt nepriviliģēti lietotāji, 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 avota arhīvu un izvelciet to uz C:\Zabbix\pcre2-10.45.

2. Atveriet MSYS2 MSYS termināli ar administratora tiesībām. Pēc tam izveidojiet build direktoriju izvilktajā 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ēm:
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ēm:
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 kādas kļūdas, ieteicams dzēst CMake kešatmiņu pirms CMake būvēšanas procesa atkārtotas palaišanas. Kešatmiņa (CMakeCachecache.txt) var atrasties izvilktā PCRE2 direktorija 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-7.4.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-7.4.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-7.4.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-7.4.0\bin\win64 (vai C:\Zabbix\zabbix-7.4.0\bin\win32 32 bitu būvējumiem). Zabbix aģenta 2 konfigurācijas faili atrodas mapē C:\Zabbix\zabbix-7.4.0\src\go\conf.

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

mkdir C:\Zabbix\agent2
copy C:\Zabbix\zabbix-7.4.0\bin\win64\zabbix_agent2.exe C:\Zabbix\agent2\
copy C:\Zabbix\zabbix-7.4.0\src\go\conf\zabbix_agent2.win.conf C:\Zabbix\agent2\
xcopy /E /I C:\Zabbix\zabbix-7.4.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.