Esta página muestra cómo compilar Zabbix agent 2 desde el código fuente en Windows 10 (64 bits o 32 bits).
Ambas versiones, de 32 y 64 bits, pueden compilarse en una plataforma de 64 bits, pero solo la versión de 32 bits puede compilarse en una plataforma de 32 bits.
La compilación de Zabbix agent 2 requiere:
Puede compilar Zabbix agent 2 utilizando uno de los siguientes métodos:
Antes de comenzar el proceso de compilación, tenga en cuenta:
C:\Zabbix
para todos los archivos fuente y carpetas de compilación. Sin embargo, los componentes compilados deben instalarse en C:\Zabbix\x64
(o C:\Zabbix\x86
para compilaciones de 32 bits).Esta sección contiene instrucciones para compilar Zabbix agent con vcpkg, un gestor de paquetes que simplifica la gestión de dependencias y la integración con proyectos C++.
1. Descargue e instale Build Tools for Visual Studio 2022. Durante la instalación, asegúrese de seleccionar la carga de trabajo Desarrollo de escritorio con C++, que incluye el gestor de paquetes vcpkg.
2. Descargue e instale Go (disponible como instalador MSI). Durante la instalación, asegúrese de especificar C:\Zabbix\Go
como la carpeta de instalación.
3. Descargue la distribución de MinGW que utiliza la biblioteca de tiempo de ejecución de Microsoft Visual C; por ejemplo:
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
Luego, extráigalo en C:\Zabbix\mingw64
(o C:\Zabbix\mingw32
para compilaciones de 32 bits).
4. Inicialice vcpkg e instale las dependencias necesarias para compilar Zabbix agent 2 (tenga en cuenta que esto puede llevar algún tiempo):
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
# Para compilaciones de 64 bits:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
vcpkg install --triplet x64-mingw-static --x-install-root=x64
# Para compilaciones de 32 bits:
set PATH=C:\Zabbix\mingw32\bin;%PATH%
vcpkg install --triplet x86-mingw-static --x-install-root=x86
5. Descargue el archivo fuente de Zabbix y extráigalo en C:\Zabbix\zabbix-8.0.0
.
6. Navegue al directorio de compilación de Zabbix (C:\Zabbix\zabbix-8.0.0\build\mingw
) y cree el siguiente script build.bat
:
:: Añadir MinGW y Go a la variable de sistema `PATH` para la sesión actual:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%
:: Establecer la ruta de instalación de vcpkg:
set vcpkg="C:\Zabbix\x64\x64-mingw-static"
:: Establecer las banderas del enlazador para la biblioteca Crypt32:
SET CGO_LDFLAGS="-lCrypt32"
:: Ejecutar el proceso de compilación:
mingw32-make GOFLAGS="-buildvcs=false" ARCH=AMD64 ^
PCRE2="%vcpkg%" ^
OPENSSL="%vcpkg%" ^
all
:: Añadir MinGW y Go a la variable de sistema `PATH` para la sesión actual:
set PATH=C:\Zabbix\mingw32\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%
:: Establecer la ruta de instalación de vcpkg:
set vcpkg="C:\Zabbix\x86\x86-mingw-static"
:: Establecer las banderas del enlazador para la biblioteca Crypt32:
SET CGO_LDFLAGS="-lCrypt32"
:: Ejecutar el proceso de compilación:
mingw32-make GOFLAGS="-buildvcs=false" ARCH=x86 ^
PCRE2="%vcpkg%" ^
OPENSSL="%vcpkg%" ^
all
7. Compile Zabbix agent 2 ejecutando el script:
Después de la compilación, el binario de Zabbix agent 2 estará ubicado en C:\Zabbix\zabbix-8.0.0\bin\win64
(para compilaciones de 64 bits) o C:\Zabbix\zabbix-8.0.0\bin\win32
(para compilaciones de 32 bits). Los archivos de configuración de Zabbix agent 2 se encuentran en C:\Zabbix\zabbix-8.0.0\src\go\conf
.
Para ejecutar el agente, copie zabbix_agent2.exe
y sus archivos de configuración a una carpeta dedicada (por ejemplo, C:\Zabbix\agent2
) y luego ejecute el agente:
mkdir C:\Zabbix\agent2
# Para compilaciones de 64 bits:
copy C:\Zabbix\zabbix-8.0.0\bin\win64\zabbix_agent2.exe C:\Zabbix\agent2\
# Para compilaciones de 32 bits:
copy C:\Zabbix\zabbix-8.0.0\bin\win32\zabbix_agent2.exe C:\Zabbix\agent2\
copy C:\Zabbix\zabbix-8.0.0\src\go\conf\zabbix_agent2.win.conf C:\Zabbix\agent2\
xcopy /E /I C:\Zabbix\zabbix-8.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
Si es necesario, continúe compilando los plugins cargables de Zabbix agent 2.
1. Descargue el código fuente del plugin de Zabbix que coincida con la versión de su Zabbix agent 2 (por ejemplo, zabbix-agent2-plugin-ember-plus-8.0.0.tar.gz
) y extráigalo en C:\Zabbix
.
2. Navegue al directorio del plugin extraído y compile el plugin:
cd C:\Zabbix\zabbix-agent2-plugin-ember-plus-8.0.0
# Para compilaciones de 64 bits:
mingw32-make ARCH=AMD64
# Para compilaciones de 32 bits:
mingw32-make ARCH=x86
Después de la compilación, el binario del plugin de Zabbix agent 2 y su archivo de configuración estarán ubicados en el mismo directorio del plugin.
El ejecutable del plugin puede colocarse en cualquier lugar siempre que sea cargable por Zabbix agent 2. Especifique la ruta al binario del plugin en el archivo de configuración del plugin, por ejemplo, en ember.conf para el plugin Ember+:
La ruta al archivo de configuración del plugin debe especificarse en el parámetro Include del archivo de configuración de Zabbix agent 2:
Este método de compilación del agente Zabbix 2 es adecuado para usuarios que requieren un control total sobre el entorno de compilación o se encuentran en un entorno restringido donde usar vcpkg no es posible.
Esta sección contiene instrucciones para compilar manualmente el agente Zabbix 2, lo que incluye la instalación de las herramientas de compilación y dependencias necesarias, y luego la compilación del agente.
1. Descargue e instale MSYS2 (disponible como instalador MSI). Durante la instalación, asegúrese de especificar C:\Zabbix\msys64
como la carpeta de instalación.
2. Descargue e instale Go (disponible como instalador MSI; consulte las versiones de Go actualmente soportadas). Durante la instalación, asegúrese de especificar C:\Zabbix\Go
como la carpeta de instalación.
3. Descargue la distribución de MinGW que utiliza la biblioteca de tiempo de ejecución de Microsoft Visual C; por ejemplo:
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
Luego, extráigalo en C:\Zabbix\mingw64
(o C:\Zabbix\mingw32
para compilaciones de 32 bits).
Para compilar el agente Zabbix sin soporte TLS, continúe con la sección Instalación de PCRE2.
1. Abra la terminal MSYS2 MSYS con privilegios de administrador y ejecute los siguientes comandos:
2. Descargue el archivo fuente de OpenSSL y extráigalo en C:\Zabbix\openssl-3.5.0
.
3. Navegue al directorio extraído de OpenSSL y cree el siguiente script 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
Asegúrese de revocar el acceso de escritura a los usuarios que no sean administradores en el directorio C:\Zabbix\x64\OpenSSL-Win64-350-static
. De lo contrario, el agente cargará la configuración SSL desde una ruta que puede ser modificada por usuarios sin privilegios, lo que resultará en una posible vulnerabilidad de seguridad.
no-shared
hace que las bibliotecas estáticas libcrypto.lib y libssl.lib de OpenSSL sean autónomas, por lo que los binarios de Zabbix incluyen OpenSSL sin necesidad de DLLs externas. Esto significa que los binarios de Zabbix pueden copiarse a otras máquinas Windows sin las bibliotecas de OpenSSL; sin embargo, cuando se publique una nueva versión de corrección de errores de OpenSSL, será necesario recompilar el agente Zabbix.no-shared
, Zabbix depende de las DLLs de OpenSSL en tiempo de ejecución. Esto significa que las actualizaciones de OpenSSL pueden no requerir recompilar el agente Zabbix; sin embargo, al copiarlo a otras máquinas, también se deben copiar las DLLs de OpenSSL.Para obtener más información sobre otras opciones de configuración de OpenSSL, consulte la documentación de OpenSSL.
4. Configure e instale OpenSSL ejecutando el script (tenga en cuenta que esto puede tardar algún tiempo):
1. Descargue el archivo fuente de PCRE2 y extráigalo en C:\Zabbix\pcre2-10.45
.
2. Abra la terminal MSYS2 MSYS con privilegios de administrador. Luego, cree un directorio build
en el directorio extraído de PCRE2 y navegue hasta él:
3. Configure PCRE2:
# Para compilaciones de 64 bits:
export PATH="/c/Zabbix/mingw64/bin:$PATH"
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS="-O2 -g" -DCMAKE_INSTALL_PREFIX="/c/Zabbix/x64/PCRE2" ..
# Para compilaciones de 32 bits:
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" ..
Si ocurre algún error, se recomienda eliminar la caché de CMake antes de intentar repetir el proceso de compilación con CMake. La caché (CMakeCachecache.txt
) puede encontrarse en el directorio de compilación del directorio extraído de PCRE2.
4. Instale PCRE2:
1. Descargue el archivo fuente de Zabbix y extráigalo en C:\Zabbix\zabbix-8.0.0
.
Si necesita generar un archivo fuente desde el repositorio fuente original (por ejemplo, para aplicar parches personalizados o compilar desde el código fuente más reciente), ejecute los siguientes comandos en una máquina Linux con Go instalado (requerido para configurar 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
Esto creará un archivo fuente, que luego puede copiarse a una máquina Windows.
2. Abra el Símbolo del sistema con privilegios de administrador. Luego, navegue al directorio de compilación de Zabbix y compile Zabbix agent; asegúrese de especificar correctamente los directorios donde están instalados OpenSSL y PCRE2:
cd C:\Zabbix\zabbix-8.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
# Con soporte TLS:
mingw32-make ARCH=AMD64 PCRE2="C:\Zabbix\x64\PCRE2" OPENSSL="C:\Zabbix\x64\OpenSSL-Win64-350-static"
# Sin soporte TLS:
mingw32-make ARCH=AMD64 PCRE2="C:\Zabbix\x64\PCRE2"
cd C:\Zabbix\zabbix-8.0.0\build\mingw
set PATH=C:\Zabbix\mingw32\bin;%PATH%
# Con soporte TLS:
mingw32-make ARCH=x86 PCRE2="C:\Zabbix\x86\PCRE2" OPENSSL="C:\Zabbix\x86\OpenSSL-Win64-350-static"
# Sin soporte TLS:
mingw32-make ARCH=x86 PCRE2="C:\Zabbix\x86\PCRE2"
Después de la compilación, el binario de Zabbix agent 2 estará ubicado en C:\Zabbix\zabbix-8.0.0\bin\win64
(o C:\Zabbix\zabbix-8.0.0\bin\win32
para compilaciones de 32 bits). Los archivos de configuración de Zabbix agent 2 se encuentran en C:\Zabbix\zabbix-8.0.0\src\go\conf
.
Para ejecutar el agente, copie el binario zabbix_agent2.exe
y sus archivos de configuración a una carpeta dedicada (por ejemplo, C:\Zabbix\agent2
) y luego ejecute el agente:
mkdir C:\Zabbix\agent2
copy C:\Zabbix\zabbix-8.0.0\bin\win64\zabbix_agent2.exe C:\Zabbix\agent2\
copy C:\Zabbix\zabbix-8.0.0\src\go\conf\zabbix_agent2.win.conf C:\Zabbix\agent2\
xcopy /E /I C:\Zabbix\zabbix-8.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
Si es necesario, continúe con la compilación de plugins cargables de Zabbix agent 2.