Esta página fue traducida automáticamente. Si detectas un error, selecciónalo y presiona Ctrl+Enter para informarlo a los editores.

1 Compilando el agente Zabbix en Windows

Descripción general

Esta sección muestra cómo compilar los binarios del agente de Windows de Zabbix desde el código fuente con o sin TLS.

Compilación del 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-7.4.0.

4. Navegue al directorio de compilación de Zabbix (C:\Zabbix\zabbix-7.4.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 se encontrarán en C:\Zabbix\zabbix-7.4.0\bin\win64. El archivo de configuración del agente Zabbix se encuentra en C:\Zabbix\zabbix-7.4.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-7.4.0\bin\win64\zabbix_agent.exe C:\Zabbix\agent\
       copy C:\Zabbix\zabbix-7.4.0\conf\zabbix_agent.win.conf C:\Zabbix\agent\
       
       C:\Zabbix\agent\zabbix_agent.exe -c C:\Zabbix\agent\zabbix_agent.win.conf

Compilando el agente Zabbix manualmente

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 el agente Zabbix manualmente, lo que incluye instalar las herramientas de compilación y dependencias necesarias (Perl, OpenSSL, PCRE2), y luego compilar el agente.

Instalación de herramientas de compilación

1. Descargue e instale Build Tools para 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 de 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 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 llevar 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.

Compilando PCRE

  1. Descargue la biblioteca PCRE o PCRE2 (https://pcre.org/).

  2. Extraiga el contenido en el directorio E:\pcre2-10.39.

  3. Instale CMake desde https://cmake.org/download/, durante la instalación seleccione: y asegúrese de que cmake\bin esté en su ruta (versión probada 3.9.4).

  4. Cree un nuevo directorio de compilación vacío, preferiblemente un subdirectorio del directorio fuente. Por ejemplo, E:\pcre2-10.39\build.

  5. Abra una ventana de línea de comandos, por ejemplo, el x64 Native Tools Command Prompt para VS 2017 y desde ese entorno de shell ejecute cmake-gui. No intente iniciar CMake desde el menú Inicio de Windows, ya que esto puede provocar errores.

  6. Ingrese E:\pcre2-10.39 y E:\pcre2-10.39\build para los directorios de origen y compilación, respectivamente.

  7. Haga clic en el botón "Configure".

  8. Al especificar el generador para este proyecto seleccione "NMake Makefiles".

  9. Cree un nuevo directorio de instalación vacío. Por ejemplo, E:\pcre2-10.39-install.

  10. La interfaz gráfica mostrará varias opciones de configuración. Asegúrese de que las siguientes opciones estén seleccionadas:

    • PCRE_SUPPORT_UNICODE_PROPERTIES ON
    • PCRE_SUPPORT_UTF ON
    • CMAKE_INSTALL_PREFIX E:\pcre2-10.39-install
  11. Haga clic en "Configure" nuevamente. El botón "Generate" adyacente ahora debería estar activo.

  12. Haga clic en "Generate".

  13. Si ocurre algún error, se recomienda eliminar la caché de CMake antes de intentar repetir el proceso de compilación con CMake. En la interfaz gráfica de CMake, la caché se puede eliminar seleccionando "File > Delete Cache".

  14. El directorio de compilación ahora debería contener un sistema de compilación utilizable - Makefile.

  15. Abra una ventana de línea de comandos como el x64 Native Tools Command Prompt para VS 2017 y navegue hasta el Makefile mencionado anteriormente.

  16. Ejecute el comando NMake:

E:\pcre2-10.39\build> nmake install

Compilando Zabbix

Los siguientes pasos le ayudarán a compilar Zabbix desde el código fuente en MS Windows 10 (64 bits). Al compilar Zabbix con/sin soporte TLS, la única diferencia significativa está en el paso 4.

  1. En una máquina Linux, obtenga el código fuente desde git:
git clone https://git.zabbix.com/scm/zbx/zabbix.git
       cd zabbix
       ./bootstrap.sh
       ./configure --enable-agent --enable-ipv6 --prefix=`pwd`
       make dbschema
       make dist
  1. Copie y descomprima el archivo, por ejemplo, zabbix-7.0.0.tar.gz, en una máquina Windows.

  2. Supongamos que los fuentes están en E:\zabbix-7.0.0. Abra una ventana de línea de comandos, como x64 Native Tools Command Prompt para VS 2017 RC. Vaya a:

E:\\zabbix-7.0.0\\build\\win32\\project
  1. En una máquina Linux, obtenga el código fuente desde git:
$ git clone https://git.zabbix.com/scm/zbx/zabbix.git
       $ cd zabbix
       $ ./bootstrap.sh
       $ ./configure --enable-agent --enable-ipv6 --prefix=`pwd`
       $ make dbschema
       $ make dist
  1. Copie y descomprima el archivo, por ejemplo, zabbix-7.4.0.tar.gz, en una máquina Windows.
  2. Supongamos que los fuentes están en e:\zabbix-7.4.0. Abra una ventana de línea de comandos, por ejemplo, x64 Native Tools Command Prompt para VS 2017 RC. Vaya a: E:\\zabbix-7.4.0\\build\\win32\\project.
  3. Compile zabbix_get, zabbix_sender y zabbix_agent.
    • sin TLS:

      E:\zabbix-7.4.0\build\win32\project> nmake /K PCRE2INCDIR=E:\pcre2-10.39-install\include PCRE2LIBDIR=E:\pcre2-10.39-install\lib
    • con TLS:

      E:\zabbix-7.4.0\build\win32\project> nmake /K -f Makefile_get TLS=openssl TLSINCDIR=C:\OpenSSL-Win64-111-static\include TLSLIBDIR=C:\OpenSSL-Win64-111-static\lib PCRE2INCDIR=E:\pcre2-10.39-install\include PCRE2LIBDIR=E:\pcre2-10.39-install\lib
             E:\zabbix-7.4.0\build\win32\project> nmake /K -f Makefile_sender TLS=openssl TLSINCDIR="C:\OpenSSL-Win64-111-static\include TLSLIBDIR="C:\OpenSSL-Win64-111-static\lib" PCRE2INCDIR=E:\pcre2-10.39-install\include PCRE2LIBDIR=E:\pcre2-10.39-install\lib
             E:\zabbix-7.4.0\build\win32\project> nmake /K -f Makefile_agent TLS=openssl TLSINCDIR=C:\OpenSSL-Win64-111-static\include TLSLIBDIR=C:\OpenSSL-Win64-111-static\lib PCRE2INCDIR=E:\pcre2-10.39-install\include PCRE2LIBDIR=E:\pcre2-10.39-install\lib
  4. Los nuevos binarios se encuentran en E:\zabbix-7.4.0\bin\win64. Dado que OpenSSL se compiló con la opción 'no-shared', los binarios de Zabbix contienen OpenSSL en sí mismos y pueden copiarse a otras máquinas que no tengan OpenSSL.