Se encuentra viendo la documentación de la versión en desarrollo, puede estar incompleta.
Esta página fue traducida automáticamente. Si detectas un error, selecciónalo y presiona Ctrl+Enter para informarlo a los editores.

1 Compilar el agente Zabbix en Windows

Descripción general

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:

  • Compilador C (incluido en Build Tools para Visual Studio 2022)
  • OpenSSL (para las funciones de cifrado en Zabbix)
  • PCRE2 (Expresiones regulares compatibles con Perl; para las funciones de coincidencia de patrones de expresiones regulares en Zabbix)

Puede compilar el agente Zabbix utilizando uno de los siguientes métodos:

  • Usando vcpkg: un enfoque automatizado que simplifica la gestión de dependencias utilizando un gestor de paquetes C++.
  • Compilación manual: un enfoque manual que requiere instalar todas las dependencias antes de compilar el agente.

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:

  • Para ejecutar comandos, utilice el símbolo del sistema de herramientas nativas x64 (incluido en Build Tools para Visual Studio 2022), iniciado por un usuario con permisos suficientes para escribir en carpetas protegidas.
  • Se recomienda crear un directorio de trabajo en 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.

Compilando el agente Zabbix con vcpkg

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:

  • Compilador C (Microsoft Visual C++)
  • Herramienta de línea de comandos NMake
  • Gestor de paquetes vcpkg
  • Símbolo del sistema de herramientas nativas x64

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:

build.bat

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

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 el agente manualmente:

  • Compilador C (Microsoft Visual C++)
  • Herramienta de línea de comandos NMake
  • Símbolo del sistema de herramientas nativas x64
Instalando OpenSSL

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:

cpanm Text::Template

3. Verifique que el Netwide Assembler (NASM; requerido 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 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.

  • La opción 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.
  • Sin la opción 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:

nmake install

Para instalar solo los componentes de software (bibliotecas, archivos de cabecera, pero sin documentación), puede usar 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 .
Compilando el agente Zabbix

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:

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.win.conf C:\Zabbix\agent\
       
       C:\Zabbix\agent\zabbix_agentd.exe -c C:\Zabbix\agent\zabbix_agentd.win.conf -f