Compilar el agent de Zabbix en Windows
Descripción general
Esta página muestra cómo compilar el agent de Zabbix a partir del código fuente en Windows 10 (64 bits).
Estas instrucciones se aplican a las versiones de Windows compatibles con Visual Studio 2022.
Para compilar el agent de Zabbix se requiere:
- Compilador de C (incluido en Build Tools for Visual Studio 2022)
- OpenSSL (para las funciones de cifrado de Zabbix)
- PCRE2 (expresiones regulares compatibles con Perl; para las funciones de coincidencia de patrones mediante expresiones regulares de Zabbix)
Puede compilar el agent de Zabbix mediante uno de los siguientes métodos:
- Uso de vcpkg: un enfoque automatizado que simplifica la gestión de dependencias mediante un gestor de paquetes de C++.
- Compilación manual: un enfoque manual que requiere instalar todas las dependencias antes de compilar el agent.
Según sus necesidades de monitorización, pueden ser necesarias bibliotecas adicionales. Para obtener más información, consulte Requisitos.
Antes de iniciar el proceso de compilación, tenga en cuenta lo siguiente:
- Para ejecutar comandos, utilice "x64 Native Tools Command Prompt" (incluido en Build Tools for Visual Studio 2022), iniciado por un usuario con permisos suficientes para escribir en carpetas protegidas.
- Se recomienda crear un directorio de trabajo en
C:\Zabbixpara todos los archivos de código fuente y las carpetas de compilación. Sin embargo, los componentes compilados deben instalarse enC:\Program Files\Zabbix\x64.
Compilación del Zabbix agent con vcpkg
Esta sección contiene instrucciones para compilar el Zabbix agent con vcpkg, un administrador de paquetes que simplifica la gestión de dependencias y la integración con proyectos de C++.
1. Descargue e instale Build Tools for Visual Studio 2022. Durante la instalación, asegúrese de seleccionar la carga de trabajo Desktop development with C++, que incluye las herramientas necesarias para compilar el agent con vcpkg:
- Compilador de C (Microsoft Visual C++)
- Herramienta de línea de comandos NMake
- Administrador de paquetes vcpkg
- "x64 Native Tools Command Prompt"
2. Abra cmd.exe con privilegios de administrador, inicialice vcpkg e instale las dependencias necesarias para compilar Zabbix agent (tenga en cuenta que esto puede tardar un 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 de código fuente de Zabbix y extráigalo en C:\Zabbix\zabbix-8.0.0.
4. Acceda 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:
:: Set vcpkg installation path:
set vcpkg=C:\Program Files\Zabbix\x64\x64-windows-static
:: Run the build process:
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. Abra "x64 Native Tools Command Prompt" y compile Zabbix agent ejecutando el script:
cd C:\Zabbix\zabbix-8.0.0\build\win32\project
build.bat
Si ha abierto otro símbolo del sistema, inicialice primero el entorno de compilación de Visual Studio:
"%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
cd C:\Zabbix\zabbix-8.0.0\build\win32\project
build.bat
Encierre entre comillas las rutas que contengan espacios.
Después de la compilación, los binarios de los componentes de Zabbix se encontrarán en C:\Zabbix\zabbix-8.0.0\bin\win64.
El archivo de configuración de Zabbix agent se encuentra en C:\Zabbix\zabbix-8.0.0\conf.
Para ejecutar el agent, copie zabbix_agentd.exe y su archivo de configuración en una carpeta específica (por ejemplo, C:\Zabbix\agent) y, a continuación, ejecute el agent:
mkdir C:\Zabbix\agent
copy C:\Zabbix\zabbix-8.0.0\bin\win64\zabbix_agentd.exe C:\Zabbix\agent\
copy C:\Zabbix\zabbix-8.0.0\conf\zabbix_agentd.conf C:\Zabbix\agent\
C:\Zabbix\agent\zabbix_agentd.exe -c C:\Zabbix\agent\zabbix_agentd.conf
Compilación manual del agente Zabbix
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.
Instalación de herramientas de compilación
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 manualmente el agent:
- Compilador de C (Microsoft Visual C++)
- Herramienta de línea de comandos NMake
- "x64 Native Tools Command Prompt"
Instalación de OpenSSL
Para compilar el agent de Zabbix sin compatibilidad con TLS, continúe con la sección Instalación de PCRE2.
1. Descargue e instale Strawberry Perl (disponible como instalador MSI).
Durante la instalación, asegúrese de especificar C:\Zabbix\Strawberry como carpeta de instalación.
2. Instale el módulo de Perl Text::Template:
cpanm Text::Template
3. Verifique que Netwide Assembler (NASM; necesario para compilar OpenSSL) se haya compilado durante la instalación de Strawberry Perl:
nasm -v
# NASM version 2.16.01 compiled on May 3 2024
Si NASM no está compilado, instálelo manualmente. Para obtener más información, consulte la documentación de NASM.
4. Descargue el archivo de código fuente de OpenSSL y extráigalo en C:\Zabbix\openssl-3.5.0.
5. Acceda 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 agent de 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 agent cargará la configuración de SSL desde una ruta que puede ser modificada por usuarios sin privilegios, lo que puede provocar una vulnerabilidad de seguridad.
- La opción
no-sharedhace que libcrypto.lib y libssl.lib sean bibliotecas estáticas de OpenSSL independientes, de modo que los binarios de Zabbix incluyan OpenSSL sin necesidad de DLL externas. Esto significa que los binarios de Zabbix se pueden copiar a otros equipos Windows sin las bibliotecas de OpenSSL; sin embargo, cuando se publique una nueva versión de corrección de errores de OpenSSL, será necesario volver a compilar el agent de Zabbix. - Sin la opción
no-shared, Zabbix depende de las DLL de OpenSSL durante el tiempo de ejecución. Esto significa que las actualizaciones de OpenSSL pueden no requerir volver a compilar el agent de Zabbix; sin embargo, al copiarlo a otros equipos, también se deben copiar las DLL de OpenSSL.
Para obtener 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 tardar algún tiempo):
Ejecute las pruebas sin privilegios administrativos; de lo contrario, podrían producirse resultados inesperados o riesgos de seguridad. Si alguna prueba falla, consulte la documentación de OpenSSL para obtener ayuda con 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:
nmake install
Para instalar únicamente los componentes de software (bibliotecas y archivos de encabezado, pero sin documentación), puede utilizar nmake install_sw.
Instalación de PCRE2
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:
mkdir C:\Zabbix\pcre2-10.45\build
cd C:\Zabbix\pcre2-10.45\build
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:
nmake
6. Instale PCRE2:
cmake --install .
Compilación del Zabbix agent
1. Descargue el archivo comprimido del código fuente de Zabbix y extráigalo en C:\Zabbix\zabbix-8.0.0.
Si necesita generar un archivo comprimido del código fuente a partir del repositorio de código fuente sin procesar (por ejemplo, para aplicar parches personalizados o compilar a partir del 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
make dist
Esto creará un archivo comprimido del código fuente, que posteriormente podrá copiarse a una máquina Windows.
2. Vaya al directorio de compilación de Zabbix, abra el símbolo del sistema "x64 Native Tools Command Prompt" y compile el Zabbix agent (u otros componentes); asegúrese de especificar correctamente los directorios donde están instalados OpenSSL y PCRE2:
"%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
cd C:\Zabbix\zabbix-8.0.0\build\win32\project
# Con compatibilidad con 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 compatibilidad con 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"
Encierre entre comillas las rutas que contengan espacios.
Después de la compilación, los binarios de los componentes de Zabbix se encontrarán en C:\Zabbix\zabbix-8.0.0\bin\win64.
El archivo de configuración del Zabbix agent se encuentra en C:\Zabbix\zabbix-8.0.0\conf.
Para ejecutar el agent, copie zabbix_agentd.exe y su archivo de configuración en una carpeta específica (por ejemplo, C:\Zabbix\agent) y, a continuación, ejecute el agent:
mkdir C:\Zabbix\agent
copy C:\Zabbix\zabbix-8.0.0\bin\win64\zabbix_agentd.exe C:\Zabbix\agent\
copy C:\Zabbix\zabbix-8.0.0\conf\zabbix_agentd.conf C:\Zabbix\agent\
C:\Zabbix\agent\zabbix_agentd.exe -c C:\Zabbix\agent\zabbix_agentd.conf -f