本页面演示如何在 Windows 10(64 位或 32 位)上从源代码构建 Zabbix agent 2。
32 位和 64 位版本都可以在 64 位平台上构建,但只有 32 位的 version 可以在 32 位平台上构建。
构建 Zabbix agent 2 需要:
可以使用以下方法之一构建 Zabbix agent 2:
::: noteimportant 在开始构建过程之前,请注意以下事项:
C:\Zabbix
路径下创建一个create工作目录。但是,编译后的组件应安装在 C:\Zabbix\x64
(或者对于 32 位构建,安装在 C:\Zabbix\x86
)。仅返回OutputFormat格式要求结果
本节包含使用 vcpkg 构建 Zabbix agent 的说明,这是一个简化依赖项管理和与 C++ 项目集成的包管理器。
1. 下载并安装 Build Tools for Visual Studio 2022。
安装期间,请确保选择 使用 C++ 的桌面开发 工作负载,其中包含 vcpkg 包管理器。
2. 下载并安装 Go(提供为 MSI 安装程序)。
安装期间,请确保将安装文件夹指定为 C:\Zabbix\Go
。
3. 下载使用 Microsoft Visual C 运行时库的 MinGW distribution;例如:
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 agent 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
# For 64-bit builds:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
vcpkg install --triplet x64-mingw-static --x-install-root=x64
# For 32-bit builds:
set PATH=C:\Zabbix\mingw32\bin;%PATH%
vcpkg install --triplet x86-mingw-static --x-install-root=x86
5. 下载 Zabbix source archive 并将其解压到 C:\Zabbix\zabbix-7.0.0
。
6. 进入 Zabbix 构建目录(C:\Zabbix\zabbix-7.0.0\build\mingw
),并 create 以下 build.bat
脚本:
:: Add MinGW and Go to the system `PATH` variable for the current session:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%
:: Set vcpkg installation path:
set vcpkg="C:\Zabbix\x64\x64-mingw-static"
:: Set linker flags for Crypt32 library:
SET CGO_LDFLAGS="-lCrypt32"
:: Run the build process:
mingw32-make GOFLAGS="-buildvcs=false" ARCH=AMD64 ^
PCRE2="%vcpkg%" ^
OPENSSL="%vcpkg%" ^
all
:: Add MinGW and Go to the system `PATH` variable for the current session:
set PATH=C:\Zabbix\mingw32\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%
:: Set vcpkg installation path:
set vcpkg="C:\Zabbix\x86\x86-mingw-static"
:: Set linker flags for Crypt32 library:
SET CGO_LDFLAGS="-lCrypt32"
:: Run the build process:
mingw32-make GOFLAGS="-buildvcs=false" ARCH=x86 ^
PCRE2="%vcpkg%" ^
OPENSSL="%vcpkg%" ^
all
7. 通过执行脚本编译 Zabbix agent 2:
编译完成后,Zabbix agent 2 二进制文件将位于 C:\Zabbix\zabbix-7.0.0\bin\win64
(用于 64 位构建)或 C:\Zabbix\zabbix-7.0.0\bin\win32
(用于 32 位构建)。
Zabbix agent 2 配置文件位于 C:\Zabbix\zabbix-7.0.0\src\go\conf
。
要 run agent,请将 zabbix_agent2.exe
及其配置文件复制到专用文件夹(例如 C:\Zabbix\agent2
),然后 run agent:
mkdir C:\Zabbix\agent2
# For 64-bit builds:
copy C:\Zabbix\zabbix-7.0.0\bin\win64\zabbix_agent2.exe C:\Zabbix\agent2\
# For 32-bit builds:
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 agent 2 可加载插件。
1。下载与您的 Zabbix agent 2 version(例如,zabbix-agent2-plugin-ember-plus-7.0.0.tar.gz
)匹配的 Zabbix plugin source,并将其解压到 C:\Zabbix
。
2。进入解压后的插件目录并编译插件:
cd C:\Zabbix\zabbix-agent2-plugin-ember-plus-7.0.0
# For 64-bit builds:
mingw32-make ARCH=AMD64
# For 32-bit builds:
mingw32-make ARCH=x86
编译完成后,Zabbix agent 2 插件二进制文件及其配置 file 将位于相同的插件目录中。
只要插件可执行文件能够被 Zabbix agent 2 加载,可以将其放置在任意位置。 在插件配置文件中指定插件二进制文件的路径,例如,在 Ember+ plugin 的 ember.conf 中:
插件配置 file 的路径必须在 Zabbix agent 2 配置文件的 Include 参数中指定:
此 Zabbix agent 2 构建方法适用于需要对构建环境进行完全控制,或在受限环境中无法使用 vcpkg 的用户。
本节包含手动构建 Zabbix agent 2 的说明,包括安装所需的构建工具和依赖项,然后编译 agent。
1。下载并安装 MSYS2(提供为 MSI 安装程序)。
安装期间,请确保将 C:\Zabbix\msys64
指定为安装文件夹。
2。下载并安装 Go(提供为 MSI 安装程序;请参阅当前支持的 agent-2)。
安装期间,请确保将 C:\Zabbix\Go
指定为安装文件夹。
3。下载使用 Microsoft Visual C 运行时库的 MinGW distribution;例如:
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 位版本)。
若需编译不支持TLS的Zabbix agent,请直接跳转至安装PCRE2章节。
1. 以管理员权限打开MSYS2 MSYS终端,并run以下命令:
2. 下载OpenSSL source archive并将其解压至C:.0目录。
3. 进入解压后的OpenSSL目录,并create以下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:-Win64-350-static目录的写入权限。 否则agent会加载可能被非特权用户修改路径的SSL设置,导致潜在安全漏洞。
更多OpenSSL配置选项信息,请参阅OpenSSL documentation。
4. 执行以下脚本配置并安装OpenSSL(注意此过程可能耗时较长):
1。下载PCRE2 source archive并解压至C:-10.45目录。
2。以管理员权限打开MSYS2 MSYS终端, 然后在解压后的PCRE2目录中create一个build目录并进入该目录:
3。配置PCRE2:
# For 64-bit builds:
export PATH="/c/Zabbix/mingw64/bin:$PATH"
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS="-O2 -g" -DCMAKE_INSTALL_PREFIX="/c/Zabbix/x64/PCRE2" ..
# For 32-bit builds:
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构建流程前deleteCMake缓存。 缓存文件(CMakeCachecache.txt)位于解压后PCRE2目录的构建目录中。
4。安装PCRE2:
1。下载Zabbix source archive并将其解压到 C:\Zabbix\zabbix-7.0.0
目录。
如果你需要从原始源代码仓库中generate一个源代码归档文件(例如,应用自定义补丁或从最新的源代码构建),请在已安装 Go 的 Linux 机器上run以下命令(配置 Zabbix agent 2 所需):
git clone https://git.zabbix.com/scm/zbx/zabbix.git
cd zabbix
./bootstrap.sh
./configure --enable-agent2 --enable-ipv6 --prefix=`pwd`
make dist
这将create一个源代码归档文件,之后可以将其复制到 Windows 机器上。
2。以管理员权限打开命令提示符。 然后,进入 Zabbix 构建目录并编译 Zabbix agent; 确保正确指定 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
# With TLS support:
mingw32-make ARCH=AMD64 PCRE2="C:\Zabbix\x64\PCRE2" OPENSSL="C:\Zabbix\x64\OpenSSL-Win64-350-static"
# Without TLS support:
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%
# With TLS support:
mingw32-make ARCH=x86 PCRE2="C:\Zabbix\x86\PCRE2" OPENSSL="C:\Zabbix\x86\OpenSSL-Win64-350-static"
# Without TLS support:
mingw32-make ARCH=x86 PCRE2="C:\Zabbix\x86\PCRE2"
编译完成后,Zabbix agent 2 二进制文件将位于 C:\Zabbix\zabbix-7.0.0\bin\win64
(或 C:\Zabbix\zabbix-7.0.0\bin\win32
用于 32-位构建)。 Zabbix agent 2 配置文件位于 C:\Zabbix\zabbix-7.0.0\src\go\conf
中。
要run agent,请将 zabbix_agent2.exe
二进制文件及其配置文件copy到专用文件夹(例如 C:\Zabbix\agent2
),然后run agent:
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 agent 2 可加载插件。