На этой странице показано, как собрать 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 [en] (доступен в виде установщика MSI). Во время установки обязательно укажите C:\Zabbix\Go
в качестве папки для установки.
3. Загрузите дистрибутив MinGW [en]использующий библиотеку времени выполнения Microsoft Visual C; например:
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 и Go к системной переменной `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 и Go к системной переменной `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-битных сборок:
copy C:\Zabbix\zabbix-7.0.0\bin\win64\zabbix_agent2.exe C:\Zabbix\agent2\
# Для 32-битных сборок:
copy 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 [en], соответствующий вашей версии агента 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 Agent 2 и его файл конфигурации будут находиться в том же каталоге плагина.
Исполняемый файл плагина можно разместить в любом месте, откуда его может загрузить Zabbix агент 2. Укажите путь к исполняемому файлу плагина в файле конфигурации плагина, например, в ember.conf для плагина Ember+:
Путь к файлу конфигурации плагина необходимо указать в параметре Include файла конфигурации Zabbix агента 2:
Этот метод сборки агента Zabbix 2 подходит пользователям, которым требуется полный контроль над средой сборки или которые находятся в ограниченной среде, где использование vcpkg невозможно.
В этом разделе содержатся инструкции по ручной сборке агента Zabbix 2, включая установку необходимых инструментов сборки и зависимостей, а также компиляцию агента.
1.Скачайте и установите MSYS2 [en] (доступен в виде MSI-установщика). Во время установки укажите C:\Zabbix\msys64
в качестве папки для установки.
2. Скачайте и установите Go [en] (доступен в виде MSI-установщика; см. поддерживаемые в настоящее время версии Go). Во время установки укажите C:\Zabbix\Go
в качестве папки для установки.
3. Скачайте дистрибутив MinGW [en], использующий библиотеку времени выполнения Microsoft Visual C; Например:
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 с правами администратора и выполните следующие команды:
2. Скачайте архив исходного кода OpenSSL [en] и распакуйте его в папку 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 Configure 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 использует DLL-библиотеки OpenSSL во время выполнения. Это означает, что обновления OpenSSL могут не требовать перекомпиляции агента Zabbix; однако при копировании на другие компьютеры необходимо также скопировать DLL-библиотеки OpenSSL.Подробнее о других параметрах конфигурации OpenSSL смотрите в документации OpenSSL [en].
4. Настройте и установите OpenSSL, выполнив скрипт (обратите внимание, что это может занять некоторое время):
1. Скачайте архив исходного кода PCRE2 [en] и распакуйте его в C:\Zabbix\pcre2-10.45
.
2. Откройте терминал MSYS2 с правами администратора. Затем создайте каталог 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:
C:\Zabbix\zabbix-7.0.0
.Если вам нужно создать архив исходного кода из репозитория исходного кода (например, для применения пользовательских патчей или сборки из последнего исходного кода), выполните следующие команды на компьютере под управлением Linux с установленным Go [en] (требуется для настройки агента 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.
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.