1 Zabbix aģenta izveide operētājsistēmā Windows

Pārskats

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

Šie norādījumi attiecas uz Windows versijām, kas atbalsta Visual Studio 2022.

Lai izveidotu Zabbix aģentu, nepieciešams:

  • C kompilators (iekļauts Build Tools for Visual Studio 2022)
  • OpenSSL (Zabbix šifrēšanas funkcijām)
  • PCRE2 (ar Perl saderīgas regulārās izteiksmes; regulāro izteiksmju modeļu atbilstības funkcijām Zabbix)

Zabbix aģentu 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.

Atkarībā no jūsu uzraudzības vajadzībām var būt nepieciešamas papildu bibliotēkas. Plašāku informāciju skatiet sadaļā Prasības.

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

  • Lai izpildītu komandas, izmantojiet "x64 Native Tools Command Prompt" (iekļauta Build Tools for Visual Studio 2022), kas palaista lietotāja vārdā ar pietiekamām atļaujām rakstīt aizsargātās mapēs.
  • Visiem pirmkoda failiem un izveides mapēm ieteicams izveidot darba direktoriju C:\Zabbix. Tomēr kompilētie komponenti jāinstalē mapē C:\Program Files\Zabbix\x64.

Zabbix aģenta izveide, izmantojot vcpkg

Šajā sadaļā 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ā iekļauti rīki, kas nepieciešami aģenta izveidei, izmantojot vcpkg:

  • C kompilators (Microsoft Visual C++)
  • NMake komandrindas rīks
  • vcpkg pakotņu pārvaldnieks
  • "x64 Native Tools Command Prompt"

2. Atveriet cmd.exe ar administratora privilēģijām, inicializējiet vcpkg un instalējiet Zabbix aģenta izveidei nepieciešamās atkarības (ņemiet vērā, ka tas var aizņemt zināmu laiku):

cd C:\Zabbix
vcpkg new --application
vcpkg add port pcre2
vcpkg add port openssl
vcpkg install --triplet x64-windows-static --x-install-root="C:\Program Files\Zabbix\x64"

3. Lejupielādējiet Zabbix avota arhīvu un izvelciet to mapē C:\Zabbix\zabbix-7.0.0.

4. Pārejiet uz Zabbix izveides direktoriju (C:\Zabbix\zabbix-7.0.0\build\win32\project) un izveidojiet tālāk norādīto build.bat skriptu; noteikti pareizi norādiet direktorijas, kurās ir instalēti OpenSSL un PCRE2:

:: Set vcpkg installation path:
set vcpkg=C:\Program Files\Zabbix\x64\x64-windows-static

:: Run the build process:
nmake -f Makefile CPU=AMD64 ^
    PCRE2INCDIR="%vcpkg%\include" ^
    PCRE2LIBDIR="%vcpkg%\lib" ^
    TLS=openssl ^
    TLSINCDIR="%vcpkg%\include" ^
    TLSLIBDIR="%vcpkg%\lib" ^
    LIBS="$(LIBS) Crypt32.lib" ^
    all

5. Atveriet "x64 Native Tools Command Prompt" un kompilējiet Zabbix aģentu, izpildot skriptu:

cd C:\Zabbix\zabbix-7.0.0\build\win32\project
build.bat

Ja atvērāt citu komandu uzvedni, vispirms inicializējiet Visual Studio izveides vidi:

"%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
cd C:\Zabbix\zabbix-7.0.0\build\win32\project
build.bat

Ceļus, kuros ir atstarpes, ievietojiet pēdiņās.

Pēc kompilēšanas Zabbix komponentu binārie faili atradīsies mapē C:\Zabbix\zabbix-7.0.0\bin\win64. Zabbix aģenta konfigurācijas fails atrodas mapē C:\Zabbix\zabbix-7.0.0\conf.

Lai palaistu aģentu, nokopējiet zabbix_agent.exe un tā konfigurācijas failu atsevišķā mapē (piemēram, C:\Zabbix\agent) un pēc tam palaidiet aģentu:

mkdir C:\Zabbix\agent
copy C:\Zabbix\zabbix-7.0.0\bin\win64\zabbix_agent.exe C:\Zabbix\agent\
copy C:\Zabbix\zabbix-7.0.0\conf\zabbix_agent.win.conf C:\Zabbix\agent\

C:\Zabbix\agent\zabbix_agent.exe -c C:\Zabbix\agent\zabbix_agent.win.conf

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

Šī Zabbix aģenta 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 sniegtas instrukcijas Zabbix aģenta manuālai būvēšanai, kas ietver nepieciešamo būvēšanas rīku un atkarību (Perl, OpenSSL, PCRE2) instalēšanu un pēc tam aģenta kompilēšanu.

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

1. Lejupielādējiet un instalējiet Build Tools for Visual Studio 2022.
Instalēšanas laikā noteikti atlasiet darba slodzi Desktop development with C++, kurā ir iekļauti rīki, kas nepieciešami aģenta manuālai būvēšanai:

  • C kompilators (Microsoft Visual C++)
  • NMake komandrindas rīks
  • “x64 Native Tools Command Prompt”
OpenSSL instalēšana

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

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

2. Instalējiet Text::Template Perl moduli:

cpanm Text::Template

3. Pārbaudiet, vai Strawberry Perl instalēšanas laikā tika kompilēts Netwide Assembler (NASM; nepieciešams OpenSSL kompilēšanai):

nasm -v
# NASM version 2.16.01 compiled on May  3 2024

Ja NASM nav kompilēts, instalējiet to manuāli. Plašāku informāciju skatiet NASM dokumentācijā.

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

5. Pārejiet uz izvilkto mapi un konfigurējiet OpenSSL, piemēram:

cd C:\Zabbix\openssl-3.5.0
perl Configure VC-WIN64A no-shared no-capieng no-winstore no-srp no-gost no-dgram no-dtls1-method no-dtls1_2-method --api=1.1.0 --prefix="C:\Program Files\Zabbix\x64\OpenSSL" --openssldir="C:\Program Files\Zabbix\x64\OpenSSL"

Ja, kompilējot Zabbix aģentu operētājsistēmā Windows, izvēlaties pielāgotu OpenSSL mapi (piemēram, C:\zabbix vai C:\openssl-64bit), noteikti noņemiet rakstīšanas piekļuvi šai mapei 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ādējādi 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.

Plašāku informāciju par citām OpenSSL konfigurācijas opcijām skatiet OpenSSL dokumentācijā.

6. Kompilējiet OpenSSL un palaidiet testus (ņemiet vērā, ka tas var aizņemt zināmu laiku):

Palaidiet testus bez administratora privilēģijām; pretējā gadījumā tas var radīt neparedzētus rezultātus vai drošības riskus. Ja kāds tests neizdodas, problēmu novēršanai skatiet OpenSSL dokumentāciju.

nmake
nmake test
...
All tests successful.
Files=325, Tests=3101, 822 wallclock secs ( 4.81 usr +  0.81 sys =  5.62 CPU)
Result: PASS

7. Instalējiet OpenSSL:

nmake install

Lai instalētu tikai programmatūras komponentus (bibliotēkas un galvenes failus, bet ne dokumentāciju), varat izmantot nmake install_sw.

PCRE2 instalēšana

1. Lejupielādējiet un instalējiet CMake (pieejams kā MSI instalētājs). Instalēšanas laikā noteikti norādiet C:\Zabbix\CMake kā instalēšanas mapi un atlasiet opciju Add CMake to the PATH environment variable.

2. Lejupielādējiet PCRE2 pirmkoda arhīvu un izpakojiet to uz C:\Zabbix\pcre2-10.45.

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

4. Konfigurējiet PCRE2:

cmake -G "NMake Makefiles" -DPCRE_SUPPORT_UNICODE_PROPERTIES=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="C:\Program Files\Zabbix\x64\PCRE2" "C:\Zabbix\pcre2-10.45"

Ja rodas kādas kļūdas, pirms mēģināt atkārtot CMake būvēšanas procesu, ieteicams dzēst CMake kešatmiņu. Kešatmiņa (CMakeCachecache.txt) var atrasties izpakotā PCRE2 direktorija build direktorijā.

5. Būvējiet PCRE2, izmantojot NMake:

nmake

6. Instalējiet PCRE2:

cmake --install .
Zabbix aģenta kompilēšana

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

Ja nepieciešams ģenerēt avota arhīvu no neapstrādāta avota repozitorija (piemēram, lai lietotu pielāgotus ielāpus vai veidotu jaunāko avota koda versiju), palaidiet tālāk norādītās komandas Linux datorā:

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

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

2. Pārejiet uz Zabbix būvēšanas direktoriju, atveriet "x64 Native Tools Command Prompt" un kompilējiet Zabbix aģentu (vai citus komponentus); noteikti pareizi norādiet direktorijas, kurās ir instalēti OpenSSL un PCRE2:

# Ja atvērāt citu komandu uzvedni, vispirms inicializējiet Visual Studio būvēšanas vidi:
"%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64

cd C:\Zabbix\zabbix-7.0.0\build\win32\project

# Ar TLS atbalstu:
nmake /K -f Makefile_agent PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib" TLS=openssl TLSINCDIR="C:\Program Files\Zabbix\x64\OpenSSL\include" TLSLIBDIR="C:\Program Files\Zabbix\x64\OpenSSL\lib"
nmake /K -f Makefile_get PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib" TLS=openssl TLSINCDIR="C:\Program Files\Zabbix\x64\OpenSSL\include" TLSLIBDIR="C:\Program Files\Zabbix\x64\OpenSSL\lib"
nmake /K -f Makefile_sender PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib" TLS=openssl TLSINCDIR="C:\Program Files\Zabbix\x64\OpenSSL\include" TLSLIBDIR="C:\Program Files\Zabbix\x64\OpenSSL\lib"

# Bez TLS atbalsta:
nmake /K -f Makefile_agent PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib"
nmake /K -f Makefile_get PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib"
nmake /K -f Makefile_sender PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib"

Ceļus, kuros ir atstarpes, ievietojiet pēdiņās.

Pēc kompilēšanas Zabbix komponentu binārie faili atradīsies mapē C:\Zabbix\zabbix-7.0.0\bin\win64. Zabbix aģenta konfigurācijas fails atrodas mapē C:\Zabbix\zabbix-7.0.0\conf.

Lai palaistu aģentu, nokopējiet zabbix_agent.exe un tā konfigurācijas failu tam paredzētā mapē (piemēram, C:\Zabbix\agent) un pēc tam palaidiet aģentu:

mkdir C:\Zabbix\agent
copy C:\Zabbix\zabbix-7.0.0\bin\win64\zabbix_agentd.exe C:\Zabbix\agent\
copy C:\Zabbix\zabbix-7.0.0\conf\zabbix_agentd.win.conf C:\Zabbix\agent\

C:\Zabbix\agent\zabbix_agentd.exe -c C:\Zabbix\agent\zabbix_agentd.win.conf -f