На этой странице показано, как собрать агент Zabbix из исходного кода в Windows 10 (64-разрядной версии).
Эти инструкции применимы к версиям Windows, поддерживающим Visual Studio 2022.
Для сборки агента Zabbix требуется:
Вы можете собрать агента Zabbix одним из следующих методов:
В зависимости от ваших потребностей в мониторинге могут потребоваться дополнительные библиотеки. Подробнее смотрите Требования.
Перед началом сборки учтите следующее:
C:\Zabbix
для всех исходных файлов и папок сборки. Однако скомпилированные компоненты следует устанавливать в C:\Program Files\Zabbix\x64
.В этом разделе содержатся инструкции по сборке агента Zabbix с помощью vcpkg, менеджера пакетов, который упрощает управление зависимостями и интеграцию с проектами C++.
1. Скачайте и установите Инструменты сборки для Visual Studio 2022.
Во время установки убедитесь, что выбрана рабочая нагрузка Desktop development with C++, которая включает в себя инструменты, необходимые для сборки агента с помощью vcpkg:
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] (https://www.zabbix.com/download_sources#70LTS) и распакуйте его в 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
:: Запустить процесс сборки:
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, выполнив скрипт:
После компиляции исполняемые файлы компонентов 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 подходит пользователям, которым требуется полный контроль над средой сборки или которые находятся в ограниченной среде, где использование vcpkg невозможно.
В этом разделе содержатся инструкции по ручной сборке агента Zabbix, включая установку необходимых инструментов сборки и зависимостей (Perl, OpenSSL, PCRE2), а также компиляцию агента.
1. Скачайте и установите [Инструменты сборки (Build Tools) для Visual Studio 2022] (https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022).
Во время установки обязательно выберите рабочую нагрузку Desktop development with C++, которая включает в себя инструменты, необходимые для ручной сборки агента:
Чтобы скомпилировать агент Zabbix без поддержки TLS, перейдите к разделу Установка PCRE2.
1. Скачайте и установите Strawberry Perl (доступен в виде MSI-установщика).
Во время установки обязательно укажите C:\Zabbix\Strawberry
в качестве папки для установки.
2. Установите модуль Perl Text::Template
:
3. Убедитесь, что Netwide Assembler (NASM; требуется для компиляции OpenSSL) был скомпилирован во время установки Strawberry Perl:
Если NASM не скомпилирован, установите его вручную. Подробнее см. в документации NASM [en].
4. Скачайте архив исходного кода OpenSSL и распакуйте его в C:\Zabbix\openssl-3.5.0
.
5. Перейдите в извлечённый каталог и настройте OpenSSL, например:
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"
Если вы выбрали пользовательский каталог для 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 использует DLL-библиотеки OpenSSL во время работы. Это означает, что обновления OpenSSL могут не требовать перекомпиляции агента Zabbix; однако при копировании на другие компьютеры необходимо также скопировать DLL-библиотеки OpenSSL.Для получения дополнительной информации о других параметрах конфигурации OpenSSL обратитесь к документации OpenSSL [en].
6. Скомпилируйте OpenSSL и запустите тесты (обратите внимание, что это может занять некоторое время):
Запускайте тесты без прав администратора; в противном случае это может привести к непредвиденным результатам или угрозам безопасности. Если некоторые тесты не пройдут, обратитесь к документации OpenSSL [en] для устранения неполадок.
nmake
nmake test
...
All tests successful.
Files=325, Tests=3101, 822 wallclock secs ( 4.81 usr +0.81 sys =5.62 CPU)
Result: PASS
Чтобы установить только программные компоненты (библиотеки, заголовочные файлы, но без документации), можно использовать nmake install_sw
.
1. Скачайте и установите [CMake] (https://cmake.org/download/) (доступен в виде MSI-установщика).
Во время установки обязательно укажите C:\Zabbix\CMake
в качестве папки установки и выберите опцию Add CMake to the PATH environment variable (Добавить CMake в переменную среды PATH).
2. Скачайте [архив исходного кода PCRE2] (https://github.com/PCRE2Project/pcre2/releases/latest) и распакуйте его в 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
) находится в каталоге build извлечённого каталога PCRE2.
5. Соберите PCRE2 с помощью NMake:
6. Установите PCRE2:
1. Скачайте [архив исходного кода Zabbix] (https://www.zabbix.com/download_sources#70LTS) и распакуйте его в 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 Файлы\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 Файлы\Zabbix\x64\OpenSSL\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
), а затем запустите агент: