Zabbix aģenta 2 būvēšana operētājsistēmā Windows
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 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 — automatizēta pieeja, kas vienkāršo atkarību pārvaldību, izmantojot C++ pakotņu pārvaldnieku.
- Manuāla izveide — manuāla pieeja, kurā pirms aģents kompilēšanas ir jāinstalē visas atkarības.
Pirms būvēšanas procesa sākšanas, lūdzu, ņemiet vērā:
- 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 un PCRE2, izmantojiet MSYS2 termināli.
- Ieteicams izveidot darba direktoriju
C:\Zabbixvisiem pirmkoda failiem un būvēšanas mapēm. Tomēr kompilētie komponenti jāinstalē mapēC:\Zabbix\x64(vaiC:\Zabbix\x8632 bitu būvēm).
Zabbix aģents 2 būvēšana ar vcpkg
Šajā sadaļā ir sniegtas instrukcijas Zabbix aģents 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ā 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 instalētājs).
Instalēšanas laikā noteikti norādiet C:\Zabbix\Go kā instalācijas mapi.
3. Lejupielādējiet MinGW distribūciju, kas izmanto Microsoft Visual C izpildlaika 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 izpakojiet to uz C:\Zabbix\mingw64 (vai C:\Zabbix\mingw32 32 bitu būvēm).
4. Inicializējiet vcpkg un instalējiet atkarības, kas nepieciešamas Zabbix aģents 2 būvēšanai (ņ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
# 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 pirmkoda arhīvu un izpakojiet to uz C:\Zabbix\zabbix-8.0.0.
6. Pārejiet 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:
:: 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 linkera 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:
:: 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 linkera 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 aģents 2, izpildot skriptu:
build.bat
Pēc kompilēšanas Zabbix aģents 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 aģents 2 konfigurācijas faili atrodas C:\Zabbix\zabbix-8.0.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
# 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 aģents 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 pirmkodu, kas atbilst jūsu Zabbix aģenta 2 versijai (piemēram, zabbix-agent2-plugin-postgresql-8.0.0.tar.gz), un izpakojiet to uz C:\Zabbix.
Pirms spraudņa instalēšanas, lūdzu, pārbaudiet tā README failu. Tajā var būt ietvertas īpašas prasības un instalēšanas norādījumi.
2. Pārejiet uz izpakotā spraudņa direktoriju un kompilējiet spraudni:
cd C:\Zabbix\zabbix-agent2-plugin-ember-plus-8.0.0
# 64 bitu būvējumiem:
mingw32-make ARCH=AMD64
# 32 bitu būvējumiem:
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, ja vien to var ielādēt Zabbix aģents 2. Norādiet ceļu uz spraudņa bināro failu spraudņa konfigurācijas failā, piemēram, postgresql.conf failā PostgreSQL spraudnim:
Plugins.PostgreSQL.System.Path=/path/to/executable/zabbix-agent2-plugin-postgresql
Ceļš uz spraudņa konfigurācijas failu 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, turpiniet ar 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 instalētājs).
Instalēšanas laikā noteikti norādiet C:\Zabbix\msys64 kā instalēšanas mapi.
2. Lejupielādējiet un instalējiet Go (pieejams kā MSI instalētājs; skatiet pašlaik atbalstītās Go versions).
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 izpildlaika 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 izpakojiet 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 pirmkoda arhīvu 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:
#!/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
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-sharedpadara 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-sharedZabbix 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ā.
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 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 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 (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 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:
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:
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:
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.