1 Изградња Zabbix агента на Windows-у

Преглед

Ова страница приказује како се изгради Zabbix агент из изворног кода на Windows 10 (64-битни).

Ова упутства се односе на верзије Windows-а које подржавају Visual Studio 2022.

За изградњу Zabbix агента потребно је:

  • C компајлер (укључен у алате за изградњу за Visual Studio 2022)
  • OpenSSL (за функције encryption у Zabbix-у)
  • PCRE2 (Perl компатибилни регуларни изрази; за функције подударања образаца регуларних израза у Zabbix-у)

Zabbix агент можете изградити користећи једну од следећих метода:

  • Коришћење vcpkg — аутоматизовани приступ који поједностављује управљање зависностима помоћу C++ менаџера пакета.
  • Ручна изградња — ручни приступ који захтева инсталирање свих зависности пре компајлирања агента.

У зависности од ваших потреба за праћењем, могу бити потребне додатне библиотеке. За више информација, погледајте Захтеви.

Пре него што започнете процес изградње, имајте на уму:

  • За извршавање команди користите командну линију x64 Native Tools (укључена у Build Tools for Visual Studio 2022), коју покреће корисник са довољним дозволама за писање у заштићене фасцикле.
  • Препоручује се креирање радног директоријума на C:\Zabbix за све изворне датотеке и фасцикле за изградњу. Међутим, компајлиране компоненте треба инсталирати у C:\Program Files\Zabbix\x64.

Изградња Zabbix агента помоћу vcpkg

Овај одељак садржи упутства за изградњу Zabbix агента помоћу vcpkg, менаџера пакета који поједностављује управљање зависностима и интеграцију са C++ пројектима.

  1. Преузмите и инсталирајте Build Tools for Visual Studio 2022. Током инсталације, обавезно изаберите оптерећење Desktop development with C++, које укључује алате потребне за изградњу агента помоћу vcpkg:
  • C компајлер (Microsoft Visual C++)
  • NMake алат командне линије
  • vcpkg менаџер пакета
  • x64 Native Tools командна линија

2. Иницијализујте vcpkg и инсталирајте зависности потребне за изградњу Zabbix агента (имајте на уму да ово може потрајати неко време):

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. Преузмите Zabbix изворну архиву и распакујте је у C:\Zabbix\zabbix-7.0.0.

4. Идите до Zabbix директоријума за изградњу (C:\Zabbix\zabbix-7.0.0\build\win32\project) и креирајте следећи скрипт build.bat; Обавезно правилно наведите директоријуме где су инсталирани OpenSSL и PCRE2:

:: Поставите путању инсталације vcpkg:
       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. Компајлирајте Zabbix агента извршавањем скрипте:

build.bat

Након компајлирања, бинарне датотеке Zabbix компоненти ће се налазити у C:\Zabbix\zabbix-7.0.0\bin\win64. Конфигурациона датотека Zabbix агента се налази у C:\Zabbix\zabbix-7.0.0\conf.

Да бисте покренули агента, копирајте zabbix_agent.exe и његову конфигурациону датотеку у посебну фасциклу (нпр., C:\Zabbix\agent) и затим покрените агента:

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 агента

Овај метод прављења Zabbix агента је погодан за кориснике којима је потребна потпуна контрола над окружењем за прављење или се налазе у ограниченом окружењу где коришћење vcpkg није могуће.

Овај одељак садржи упутства за ручно прављење Zabbix агента, што укључује инсталирање потребних алата за прављење и зависности (Perl, OpenSSL, PCRE2), а затим компајлирање агента.

Инсталирање алата за изградњу

1. Преузмите и инсталирајте Build Tools for Visual Studio 2022. Током инсталације, обавезно изаберите оптерећење Desktop development with C++, које укључује алате потребне за ручно изградњу агента:

  • C компајлер (Microsoft Visual C++)
  • NMake алат командне линије
  • x64 Native Tools командна линија
Инсталирање OpenSSL-а

Да бисте компајлирали Zabbix агента без TLS подршке, пређите на одељак Инсталирање PCRE2.

1. Преузмите и инсталирајте Strawberry Perl (доступан као MSI инсталатер). Током инсталације, обавезно наведите C:\Zabbix\Strawberry као фасциклу за инсталацију.

2. Инсталирајте Perl модул Text::Template:

cpanm Text::Template

3. Проверите да ли је Netwide Assembler (NASM; потребан за компајлирање OpenSSL-а) компајлиран током инсталације Strawberry Perl-а:

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

Ако NASM није компајлиран, инсталирајте га ручно. За више информација, погледајте NASM документацију.

4. Преузмите OpenSSL архиву изворног кода и распакујте је у C:\Zabbix\openssl-3.5.0.

5. Идите до издвојеног директоријума и конфигуришите OpenSSL, на пример:

cd C:\Zabbix\openssl-3.5.0
       perl Конфигуришите 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"

Ако изаберете прилагођени директоријум за OpenSSL приликом компајлирања Zabbix агента на Windows-у (нпр., C:\zabbix или C:\openssl-64bit), обавезно опозовите приступ писању за кориснике који нису администратори у овом директоријуму. У супротном, агент ће учитати SSL подешавања са путање коју могу изменити непривилеговани корисници, што резултира потенцијалном безбедносном рањивошћу.

  • Опција no-shared чини статичке библиотеке OpenSSL libcrypto.lib и libssl.lib самосталним, тако да бинарне датотеке Zabbix-а укључују OpenSSL без потребе за екстерним DLL-овима. То значи да се бинарне датотеке Zabbix-а могу копирати на друге Windows машине без OpenSSL библиотека; међутим, када се објави нова верзија исправке грешака OpenSSL-а, Zabbix агент ће морати поново да се компајлира.
  • Без опције no-shared, Zabbix се ослања на OpenSSL DLL-ове током извршавања. То значи да ажурирања OpenSSL-а можда неће захтевати поновно компајлирање Zabbix агента; међутим, приликом копирања на друге машине, OpenSSL DLL-ове такође морају бити копиране.

За више информација о другим опцијама конфигурације OpenSSL-а, погледајте OpenSSL документацију.

6. Компајлирајте OpenSSL и покрените тестове (имајте на уму да ово може потрајати неко време):

Покрените тестове без администраторских привилегија; у супротном, то може довести до неочекиваних резултата или безбедносних ризика. Ако неки тестови не успеју, погледајте OpenSSL документацију за решавање проблема.

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. Инсталирајте OpenSSL:

nmake install

Да бисте инсталирали само софтверске компоненте (библиотеке, заглавне датотеке, али не и документацију), можете користити nmake install_sw.

Инсталирање PCRE2

1. Преузмите и инсталирајте CMake (доступан као MSI инсталатер). Током инсталације, обавезно наведите C:\Zabbix\CMake као инсталациони фолдер и изаберите опцију Додај CMake у променљиву окружења PATH.

2. Преузмите PCRE2 изворну архиву и распакујте је у C:\Zabbix\pcre2-10.45.

3. Направите директоријум build у распакованом PCRE2 директоријуму и идите до њега:

mkdir C:\Zabbix\pcre2-10.45\build
       cd C:\Zabbix\pcre2-10.45\build

4. Конфигуришите 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"

Ако се појаве било какве грешке, препоручује се да обришете CMake кеш пре него што покушате да поновите процес изградње CMake-а. Кеш (CMakeCachecache.txt) се може наћи у директоријуму за изградњу издвојеног PCRE2 директоријума.

5. Изградите PCRE2 користећи NMake:

nmake

6. Инсталирајте PCRE2:

cmake --install .
Компилација Zabbix агента

1. Преузмите Zabbix изворну архиву и распакујте је у C:\Zabbix\zabbix-7.0.0.

Ако треба да генеришете изворну архиву из репозиторијума сирових извора (нпр., да бисте применили прилагођене закрпе или изградили из најновијег изворног кода), покрените следеће команде на Linux машини:

git clone https://git.zabbix.com/scm/zbx/zabbix.git
       cd zabbix
       ./bootstrap.sh
       ./configure --enable-agent --enable-ipv6 --prefix=`pwd`
       make dist

Ово ће креирати изворну архиву, која се затим може копирати на Windows машину.

2. Идите до Zabbix директоријума за изградњу и компилирајте Zabbix агент (или друге компоненте); Обавезно правилно наведите директоријуме где су инсталирани OpenSSL и PCRE2:

cd C:\Zabbix\zabbix-7.0.0\build\win32\project
       
       # Са TLS подршком:
       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 Датотеке\Zabbix\x64\PCRE2\lib" TLS=openssl TLSINCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" TLSLIBDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib" TLS=openssl TLSINCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" TLSLIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib"
       
       # Без TLS подршке:
       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"

Након компилације, бинарне датотеке Zabbix компоненти ће се налазити у C:\Zabbix\zabbix-7.0.0\bin\win64. Конфигурациона датотека Zabbix агента се налази у C:\Zabbix\zabbix-7.0.0\conf.

Да бисте покренули агента, копирајте zabbix_agent.exe и његову конфигурациону датотеку у посебну фасциклу (нпр., C:\Zabbix\agent) и затим покрените агента:

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