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

Pārskats

Šī lapa demonstrē, kā no avota failiem izveidot Zabbix aģents 2 operētājsistēmā Windows 10 (64 bitu vai 32 bitu).

Gan 32 bitu, gan 64 bitu versiju 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ūvniecības rīki
  • Go programmēšanas valoda
  • OpenSSL (Zabbix šifrēšanas funkcijām)
  • PCRE2 (Perl Compatible Regular Expressions; Zabbix regulāro izteiksmju rakstu atbilstības funkcijām)

Zabbix aģents 2 varat izveidot, izmantojot vienu no šī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, kurai pirms aģenta kompilēšanas ir jāinstalē visas atkarības.

Pirms izveides procesa sākšanas, lūdzu, ņemiet vērā:

  • Lai izpildītu komandas, izmantojiet Command Prompt, ko palaiž lietotājs ar pietiekamām tiesībām rakstīšanai aizsargātās mapēs. Tomēr, instalējot OpenSSL un PCRE2, izmantojiet MSYS2 termināli.
  • Ieteicams izveidot darba direktoriju C:\Zabbix visiem avota failiem un būvēšanas mapēm. Tomēr kompilētie komponenti jāinstalē C:\Zabbix\x64 (vai C:\Zabbix\x86 32 bitu būvēm).

Zabbix aģenta 2 būvēšana ar vcpkg

Šajā sadaļā ir sniegtas instrukcijas Zabbix aģenta būvēšanai 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ā pārliecinieties, ka ir atlasīta Desktop development with C++ darba slodze, kas ietver vcpkg pakotņu pārvaldnieku.

2. Lejupielādējiet un instalējiet Go (pieejams kā MSI instalators).
Instalēšanas laikā 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

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

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ūvēšanas rīku iestatīšana

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

2. Lejupielādējiet un instalējiet Go (pieejams kā MSI instalētājs; 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

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ģents bez TLS atbalsta, pārejiet uz sadaļu PCRE2 instalēšana.

1. Atveriet MSYS2 MSYS termināli ar administratora tiesībā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 uz C:\Zabbix\openssl-3.5.0.

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

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

Pārliecinieties, ka lietotājiem bez administratora tiesībām ir atsaukta rakstīšanas piekļuve direktorijam C:\Zabbix\x64\OpenSSL-Win64-350-static. 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 tiesībām, radot iespējamu 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 bez nepieciešamības pēc ārējām DLL. Tas nozīmē, ka Zabbix bināros failus var kopēt uz citiem Windows datoriem 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 izpildes laikā 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 citiem datoriem, ir jākopē arī OpenSSL DLL.

Lai iegūtu vairāk informācijas par citām OpenSSL konfigurācijas opcijām, skatiet OpenSSL dokumentāciju.

4. Konfigurējiet un instalējiet OpenSSL, izpildot skriptu (ņemiet vērā, ka tas var aizņemt kādu 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 avota arhīvu un izvelciet to uz C:\Zabbix\zabbix-7.4.0.

Ja nepieciešams izveidot avota arhīvu no neapstrādātās avotu krātuves (piemēram, lai lietotu pielāgotus ielāpus vai būvētu no jaunākā avota koda), palaidiet šādas komandas Linux datorā, kurā ir instalēts Go (tas ir nepieciešams Zabbix aģenta 2 konfigurēšanai):

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 avota arhīvs, ko pēc tam var kopēt uz Windows datoru.

2. Atveriet Komandu uzvedni 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:
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ēm:
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-Win64-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 C:\Zabbix\zabbix-7.4.0\bin\win64 (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, 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:

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.