Овај одељак показује како да направите бинарне датотеке Zabbix Windows агента из извора са или без TLS-а.
This section contains instructions for building Zabbix agent with vcpkg, a package manager that simplifies dependency management and integration with C++ projects.
1. Download and install Build Tools for Visual Studio 2022. During installation, make sure to select the Desktop development with C++ workload, which includes the tools required for building the agent with vcpkg:
2. Initialize vcpkg and install the dependencies required for building Zabbix agent (note that this may take some time):
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. Download the Zabbix source archive and extract it to C:\Zabbix\zabbix-7.4.0
.
4. Navigate to the Zabbix build directory (C:\Zabbix\zabbix-7.4.0\build\win32\project
) and create the following build.bat
script; make sure to correctly specify the directories where OpenSSL and PCRE2 are installed:
:: 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. Compile Zabbix agent by executing the script:
After compilation, Zabbix component binaries will be located in C:\Zabbix\zabbix-7.4.0\bin\win64
. Zabbix agent configuration file is located in C:\Zabbix\zabbix-7.4.0\conf
.
To run the agent, copy zabbix_agent.exe
and its configuration file to a dedicated folder (e.g., C:\Zabbix\agent
) and then run the agent:
mkdir C:\Zabbix\agent
copy C:\Zabbix\zabbix-7.4.0\bin\win64\zabbix_agent.exe C:\Zabbix\agent\
copy C:\Zabbix\zabbix-7.4.0\conf\zabbix_agent.win.conf C:\Zabbix\agent\
C:\Zabbix\agent\zabbix_agent.exe -c C:\Zabbix\agent\zabbix_agent.win.conf
This method of building Zabbix agent is suitable for users who require full control over the build environment or are in a restricted environment where using vcpkg is not possible.
This section contains instructions for building Zabbix agent manually, which includes installing the required build tools and dependencies (Perl, OpenSSL, PCRE2), and then compiling the agent.
1. Download and install Build Tools for Visual Studio 2022. During installation, make sure to select the Desktop development with C++ workload, which includes the tools required for building the agent manually:
To compile Zabbix agent without TLS support, proceed to the Installing PCRE2 section.
1. Download and install Strawberry Perl (available as an MSI installer). During installation, make sure to specify C:\Zabbix\Strawberry
as the installation folder.
2. Install the Text::Template
Perl module:
3. Verify that the Netwide Assembler (NASM; required for compiling OpenSSL), was compiled during the installation of Strawberry Perl:
If NASM is not compiled, install it manually. For more information, refer to NASM documentation.
4. Download the OpenSSL source archive and extract it to C:\Zabbix\openssl-3.5.0
.
5. Navigate to the extracted directory and configure OpenSSL, for example:
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"
If you choose a custom directory for OpenSSL when compiling Zabbix agent on Windows (e.g., C:\zabbix
or C:\openssl-64bit
), make sure to revoke write access from non-administrator users to this directory. Otherwise, the agent will load SSL settings from a path that can be modified by unprivileged users, resulting in a potential security vulnerability.
no-shared
option makes libcrypto.lib and libssl.lib OpenSSL static libraries self-contained, so Zabbix binaries include OpenSSL without needing external DLLs. This means that Zabbix binaries can be copied to other Windows machines without OpenSSL libraries; however, when a new OpenSSL bugfix version is released, Zabbix agent will need to be recompiled.no-shared
option, Zabbix relies on OpenSSL DLLs at runtime. This means that OpenSSL updates may not require recompiling Zabbix agent; however, when copying it to other machines, the OpenSSL DLLs must be also be copied.For more information about other OpenSSL configuration options, refer to OpenSSL documentation.
6. Compile OpenSSL and run tests (note that this may take some time):
Run the tests without administrative privileges; otherwise, it may lead to unexpected results or security risks. If some tests fail, refer to OpenSSL documentation for troubleshooting.
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. Install OpenSSL:
To install only software components (libraries, header files, but no documentation), you may use nmake install_sw
.
1. Преузмите и инсталирајте CMake (доступан као MSI инсталатер). Током инсталације, обавезно наведите C:\Zabbix\CMake
као инсталациони фолдер и изаберите опцију Додај CMake у променљиву окружења PATH.
2. Преузмите PCRE2 изворну архиву и распакујте је у C:\Zabbix\pcre2-10.45
.
3. Направите директоријум build
у распакованом PCRE2 директоријуму и идите до њега:
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:
6. Инсталирајте PCRE2:
1. Преузмите Zabbix изворну архиву и распакујте је у C:\Zabbix\zabbix-7.4.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.4.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.4.0\bin\win64
. Конфигурациона датотека Zabbix агента се налази у C:\Zabbix\zabbix-7.4.0\conf
.
Да бисте покренули агента, копирајте zabbix_agent.exe
и његову конфигурациону датотеку у посебну фасциклу (нпр., C:\Zabbix\agent
) и затим покрените агента: