Ова страница показује како се изгради Zabbix агент 2 из изворног кода на Windows 10 (64-битни или 32-битни).
И 32-битне и 64-битне верзије могу се изградити на 64-битној платформи, али само 32-битна верзија може се изградити на 32-битној платформи.
Изградња Zabbix агента 2 захтева:
Zabbix агент 2 можете изградити користећи једну од следећих метода:
Пре него што започнете процес изградње, имајте на уму:
C:\Zabbix
за све изворне датотеке и фасцикле за изградњу. Међутим, компајлиране компоненте треба инсталирати у C:\Zabbix\x64
(или C:\Zabbix\x86
за 32-битне изградње).Овај одељак садржи упутства за изградњу Zabbix агента помоћу vcpkg, менаџера пакета који поједностављује управљање зависностима и интеграцију са C++ пројектима.
1. Преузмите и инсталирајте Build Tools for Visual Studio 2022. Током инсталације, обавезно изаберите радно оптерећење Desktop development with C++, које укључује менаџер пакета vcpkg.
2. Преузмите и инсталирајте Go (доступно као MSI инсталатер). Током инсталације, обавезно наведите C:\Zabbix\Go
као инсталациону фасциклу.
3. Преузмите MinGW дистрибуцију која користи Microsoft Visual C runtime библиотеку; на пример:
x86_64-15.1.0-release-win32-seh-msvcrt-rt_v12-rev0.7z
i686-15.1.0-release-win32-dwarf-msvcrt-rt_v12-rev0.7z
Затим, распакујте је у C:\Zabbix\mingw64
(или C:\Zabbix\mingw32
за 32-битне верзије).
4. Иницијализујте vcpkg и инсталирајте зависности потребне за изградњу Zabbix агента 2 (имајте на уму да ово може потрајати неко време):
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-битне верзије:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
vcpkg install --triplet x64-mingw-static --x-install-root=x64
# За 32-битне верзије:
set PATH=C:\Zabbix\mingw32\bin;%PATH%
vcpkg install --triplet x86-mingw-static --x-install-root=x86
5. Преузмите архиву изворног кода Zabbix-а и распакујте је у C:\Zabbix\zabbix-7.0.0
.
6. Идите до директоријума за изградњу Zabbix-а (C:\Zabbix\zabbix-7.0.0\build\mingw
) и креирајте следећи скрипт build.bat
:
:: Додајте MinGW и идите на системску променљиву `PATH` за тренутну сесију:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%
:: Поставите путању инсталације vcpkg:
set vcpkg="C:\Zabbix\x64\x64-mingw-static"
:: Поставите заставице линкера за библиотеку Crypt32:
SET CGO_LDFLAGS="-lCrypt32"
:: Покрените процес изградње:
mingw32-make GOFLAGS="-buildvcs=false" ARCH=AMD64 ^
PCRE2="%vcpkg%" ^
OPENSSL="%vcpkg%" ^
all
:: Додајте MinGW и идите на системску променљиву `PATH` за тренутну сесију:
set PATH=C:\Zabbix\mingw32\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%
:: Поставите путању инсталације vcpkg:
set vcpkg="C:\Zabbix\x86\x86-mingw-static"
:: Поставите заставице линкера за библиотеку Crypt32:
SET CGO_LDFLAGS="-lCrypt32"
:: Покрените процес верзије:
mingw32-make GOFLAGS="-buildvcs=false" ARCH=x86 ^
PCRE2="%vcpkg%" ^
OPENSSL="%vcpkg%" ^
all
7. Компајлирајте Zabbix агент 2 извршавањем скрипте:
Након компајлирања, бинарна датотека Zabbix агента 2 ће се налазити у C:\Zabbix\zabbix-7.0.0\bin\win64
(за 64-битне верзије) или C:\Zabbix\zabbix-7.0.0\bin\win32
(за 32-битне верзије). Конфигурационе датотеке Zabbix агента 2 налазе се у C:\Zabbix\zabbix-7.0.0\src\go\conf
.
Да бисте покренули агента, zabbix_agent2.exe
и његове конфигурационе датотеке пребаците у посебну фасциклу (нпр., C:\Zabbix\agent2
), а затим покрените агента:
mkdir C:\Zabbix\agent2
# За 64-битне верзије:
копирајте C:\Zabbix\zabbix-7.0.0\bin\win64\zabbix_agent2.exe C:\Zabbix\agent2\
# За 32-битне верзије:
копирајте C:\Zabbix\zabbix-7.0.0\bin\win32\zabbix_agent2.exe C:\Zabbix\agent2\
copy C:\Zabbix\zabbix-7.0.0\src\go\conf\zabbix_agent2.win.conf C:\Zabbix\agent2\
xcopy /E /I C:\Zabbix\zabbix-7.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
Ако је потребно, наставите са компајлирањем учитаних додатака за Zabbix агент 2.
1. Преузмите изворни код Zabbix додатка који одговара вашој верзији Zabbix агента 2 (нпр., zabbix-agent2-plugin-ember-plus-7.0.0.tar.gz
) и распакујте га у C:\Zabbix
.
2. Идите до директоријума распакованог додатка и компајлирајте додатак:
cd C:\Zabbix\zabbix-agent2-plugin-ember-plus-7.0.0
# За 64-битне верзије:
mingw32-make ARCH=AMD64
# За 32-битне верзије:
mingw32-make ARCH=x86
Након компилације, бинарни фајл додатка Zabbix агента 2 и његова конфигурациона датотека ће се налазити у истом директоријуму додатка.
Извршна датотека додатка може се поставити било где све док је Zabbix агент 2 може учитати. Наведите путању до бинарне датотеке додатка у конфигурационој датотеци додатка, нпр. у ember.conf за Ember+ додатак:
Путања до конфигурационе датотеке додатка мора бити наведена у параметру Include конфигурационе датотеке Zabbix агента 2:
Овај метод креирања Zabbix агента 2 је погодан за кориснике којима је потребна потпуна контрола над окружењем за креирање или се налазе у ограниченом окружењу где коришћење vcpkg није могуће.
Овај одељак садржи упутства за ручно креирање Zabbix агента 2, што укључује инсталирање потребних алата за креирање и зависности, а затим компајлирање агента.
1. Преузмите и инсталирајте MSYS2 (доступан као MSI инсталер). Током инсталације, обавезно наведите C:\Zabbix\msys64
као фасциклу за инсталацију.
2. Преузмите и инсталирајте Go (доступан као MSI инсталер; погледајте тренутно подржане Go верзије). Током инсталације, обавезно наведите C:\Zabbix\Go
као фасциклу за инсталацију.
x86_64-15.1.0-release-win32-seh-msvcrt-rt_v12-rev0.7z
i686-15.1.0-release-win32-dwarf-msvcrt-rt_v12-rev0.7z
Затим, распакујте га у C:\Zabbix\mingw64
(или C:\Zabbix\mingw32
за 32-битне верзије).
Да бисте компајлирали Zabbix агента без TLS подршке, пређите на одељак Инсталирање PCRE2.
1. Отворите MSYS2 MSYS терминал са администраторским привилегијама и покрените следеће команде:
2. Преузмите OpenSSL изворну архиву и распакујте је у C:\Zabbix\openssl-3.5.0
.
3. Идите до издвојеног директоријума OpenSSL и креирајте следећи скрипт build.sh
:
#!/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
#!/usr/bin/env bash
export PATH="/c/Zabbix/mingw32/bin:$PATH"
export d="/c/Zabbix/x86/OpenSSL-Win64-350-static"
perl Конфигуриши 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
Обавезно опозовите приступ за писање корисницима који нису администратори у директоријум C:\Zabbix\x64\OpenSSL-Win64-350-static
. У супротном, агент ће учитати 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 документацију.
4. Конфигуришите и инсталирајте OpenSSL покретањем скрипте (имајте на уму да ово може потрајати неко време):
1. Преузмите PCRE2 изворну архиву и распакујте је у C:\Zabbix\pcre2-10.45
.
2. Отворите MSYS2 MSYS терминал са администраторским привилегијама. Затим, креирајте build
директоријум у распакованом PCRE2 директоријуму и идите до њега:
3. Конфигуришите PCRE2:
# За 64-битне верзије:
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-битне верзије:
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" ..
Ако дође до било каквих грешака, препоручује се да обришете кеш меморију CMake-а пре него што покушате да поновите процес изградње CMake-а. Кеш меморија (CMakeCachecache.txt
) се може наћи у директоријуму за изградњу распакованог директоријума PCRE2.
4. Инсталирајте PCRE2:
1. Преузмите Zabbix архиву изворног кода и распакујте је у C:\Zabbix\zabbix-7.0.0
.
Ако треба да генеришете архиву изворног кода из репозиторијума сирових изворних кодова (нпр., да бисте применили прилагођене закрпе или изградили из најновијег изворног кода), покрените следеће команде на Linux машини са инсталираним Go (потребно за конфигурисање Zabbix агента 2):
git clone https://git.zabbix.com/scm/zbx/zabbix.git
cd zabbix
./bootstrap.sh
./configure --enable-agent2 --enable-ipv6 --prefix=`pwd`
make dist
Ово ће креирати архиву изворног кода, која се затим може копирати на Windows машину.
2. Отворите командну линију са администраторским привилегијама. Затим, идите до директоријума за изградњу Zabbix-а и компајлирајте Zabbix агента; Обавезно правилно наведите директоријуме где су инсталирани OpenSSL и PCRE2:
cd C:\Zabbix\zabbix-7.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
# Са TLS подршком:
mingw32-make ARCH=AMD64 PCRE2="C:\Zabbix\x64\PCRE2" OPENSSL="C:\Zabbix\x64\OpenSSL-Win64-350-static"
# Без TLS подршке:
mingw32-make ARCH=AMD64 PCRE2="C:\Zabbix\x64\PCRE2"
cd C:\Zabbix\zabbix-7.0.0\build\mingw
set PATH=C:\Zabbix\mingw32\bin;%PATH%
# Са TLS подршком:
mingw32-make ARCH=x86 PCRE2="C:\Zabbix\x86\PCRE2" OPENSSL="C:\Zabbix\x86\OpenSSL-Win64-350-static"
# Без TLS подршке:
mingw32-make ARCH=x86 PCRE2="C:\Zabbix\x86\PCRE2"
Након компилације, бинарна датотека Zabbix агента 2 ће се налазити у C:\Zabbix\zabbix-7.0.0\bin\win64
(или C:\Zabbix\zabbix-7.0.0\bin\win32
за 32-битне верзије). Конфигурационе датотеке Zabbix агента 2 налазе се у C:\Zabbix\zabbix-7.0.0\src\go\conf
.
Да бисте покренули агента, копирајте бинарну датотеку zabbix_agent2.exe
и њене конфигурационе датотеке у посебну фасциклу (нпр., C:\Zabbix\agent2
) и затим покрените агента:
mkdir C:\Zabbix\agent2
copy C:\Zabbix\zabbix-7.0.0\bin\win64\zabbix_agent2.exe C:\Zabbix\agent2\
copy C:\Zabbix\zabbix-7.0.0\src\go\conf\zabbix_agent2.win.conf C:\Zabbix\agent2\
xcopy /E /I C:\Zabbix\zabbix-7.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
Ако је потребно, наставите са компилирањем учитаних додатака за Zabbix агент 2.