Esta página muestra cómo compilar el agente Zabbix desde el código fuente en Windows 10 (64 bits).
Estas instrucciones se aplican a las versiones de Windows que admiten Visual Studio 2022.
La compilación del agente Zabbix requiere:
Puede compilar el agente Zabbix utilizando uno de los siguientes métodos:
Dependiendo de sus necesidades de monitorización, pueden ser necesarias bibliotecas adicionales. Para obtener más información, consulte Requisitos.
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:\Program Files\Zabbix\x64
.Esta sección contiene instrucciones para compilar el agente Zabbix 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 las herramientas necesarias para compilar el agente con vcpkg:
2. Inicialice vcpkg e instale las dependencias necesarias para compilar el agente Zabbix (tenga en cuenta que esto puede llevar algún tiempo):
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. Descargue el archivo fuente de Zabbix y extráigalo en C:\Zabbix\zabbix-8.0.0
.
4. Navegue al directorio de compilación de Zabbix (C:\Zabbix\zabbix-8.0.0\build\win32\project
) y cree el siguiente script build.bat
; asegúrese de especificar correctamente los directorios donde están instalados OpenSSL y PCRE2:
:: Establecer la ruta de instalación de vcpkg:
set vcpkg=C:\Program Files\Zabbix\x64\x64-windows-static
:: Ejecutar el proceso de compilación:
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 el agente Zabbix ejecutando el script:
Después de la compilación, los binarios de los componentes de Zabbix estarán ubicados en C:\Zabbix\zabbix-8.0.0\bin\win64
. El archivo de configuración del agente Zabbix se encuentra en C:\Zabbix\zabbix-8.0.0\conf
.
Para ejecutar el agente, copie zabbix_agent.exe
y su archivo de configuración a una carpeta dedicada (por ejemplo, C:\Zabbix\agent
) y luego ejecute el agente:
mkdir C:\Zabbix\agent
copy C:\Zabbix\zabbix-8.0.0\bin\win64\zabbix_agent.exe C:\Zabbix\agent\
copy C:\Zabbix\zabbix-8.0.0\conf\zabbix_agent.win.conf C:\Zabbix\agent\
C:\Zabbix\agent\zabbix_agent.exe -c C:\Zabbix\agent\zabbix_agent.win.conf
Este método de compilación del agente Zabbix 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, lo que incluye la instalación de las herramientas de compilación y dependencias necesarias (Perl, OpenSSL, PCRE2), y luego la compilación del agente.
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 las herramientas necesarias para compilar el agente manualmente:
Para compilar el agente Zabbix sin soporte TLS, continúe con la sección Instalando PCRE2.
1. Descargue e instale Strawberry Perl (disponible como instalador MSI). Durante la instalación, asegúrese de especificar C:\Zabbix\Strawberry
como la carpeta de instalación.
2. Instale el módulo Perl Text::Template
:
3. Verifique que el Netwide Assembler (NASM; requerido para compilar OpenSSL), se haya compilado durante la instalación de Strawberry Perl:
Si NASM no está compilado, instálelo manualmente. Para más información, consulte la documentación de NASM.
4. Descargue el archivo fuente de OpenSSL y extráigalo en C:\Zabbix\openssl-3.5.0
.
5. Navegue al directorio extraído y configure OpenSSL, por ejemplo:
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"
Si elige un directorio personalizado para OpenSSL al compilar el agente Zabbix en Windows (por ejemplo, C:\zabbix
o C:\openssl-64bit
), asegúrese de revocar el acceso de escritura a los usuarios que no sean administradores para este directorio. 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 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 más información sobre otras opciones de configuración de OpenSSL, consulte la documentación de OpenSSL.
6. Compile OpenSSL y ejecute las pruebas (tenga en cuenta que esto puede tomar algún tiempo):
Ejecute las pruebas sin privilegios administrativos; de lo contrario, puede provocar resultados inesperados o riesgos de seguridad. Si algunas pruebas fallan, consulte la documentación de OpenSSL para la resolución de problemas.
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. Instale OpenSSL:
Para instalar solo los componentes de software (bibliotecas, archivos de cabecera, pero sin documentación), puede usar nmake install_sw
.
1. Descargue e instale CMake (disponible como instalador MSI). Durante la instalación, asegúrese de especificar C:\Zabbix\CMake
como la carpeta de instalación y seleccione la opción Add CMake to the PATH environment variable.
2. Descargue el archivo fuente de PCRE2 y extráigalo en C:\Zabbix\pcre2-10.45
.
3. Cree un directorio build
en el directorio extraído de PCRE2 y navegue hasta él:
4. Configure 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"
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.
5. Compile PCRE2 usando NMake:
6. 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:
git clone https://git.zabbix.com/scm/zbx/zabbix.git
cd zabbix
./bootstrap.sh
./configure --enable-agent --enable-ipv6 --prefix=`pwd`
make dist
Esto creará un archivo fuente, que luego puede copiarse a una máquina Windows.
2. Navegue al directorio de compilación de Zabbix y compile el agente Zabbix (u otros componentes); asegúrese de especificar correctamente los directorios donde están instalados OpenSSL y PCRE2:
cd C:\Zabbix\zabbix-8.0.0\build\win32\project
# Con soporte 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 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 Files\Zabbix\x64\OpenSSL\lib"
# Sin soporte 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"
Después de la compilación, los binarios de los componentes de Zabbix estarán ubicados en C:\Zabbix\zabbix-8.0.0\bin\win64
. El archivo de configuración del agente Zabbix se encuentra en C:\Zabbix\zabbix-8.0.0\conf
.
Para ejecutar el agente, copie zabbix_agent.exe
y su archivo de configuración a una carpeta dedicada (por ejemplo, C:\Zabbix\agent
) y luego ejecute el agente: