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.

2 Compilar Zabbix agent 2 en Windows

Descripción general

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:

  • Herramientas de compilación MinGW
  • Lenguaje de programación Go
  • 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 Zabbix agent 2 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.

Antes de comenzar el proceso de compilación, tenga en cuenta:

  • Para ejecutar comandos, utilice el Símbolo del sistema, iniciado por un usuario con permisos suficientes para escribir en carpetas protegidas. Sin embargo, al instalar OpenSSL y PCRE2, utilice la terminal MSYS2.
  • 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:\Zabbix\x64 (o C:\Zabbix\x86 para compilaciones de 32 bits).

Compilando Zabbix agent 2 con vcpkg

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:

  • Para compilaciones de 64 bits: x86_64-15.1.0-release-win32-seh-msvcrt-rt_v12-rev0.7z
  • Para compilaciones de 32 bits: 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:

  • Para compilaciones de 64 bits:
:: 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
  • Para compilaciones de 32 bits:
:: 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:

build.bat

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.

Compilación de 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+:

Plugins.EmberPlus.System.Path=/ruta/al/ejecutable/zabbix-agent2-plugin-ember-plus

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:

Include=/ruta/al/archivo/de/configuración/del/plugin/ember.conf

Compilación manual del agente Zabbix 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.

Configuración de las herramientas de compilación

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:

  • Para compilaciones de 64 bits: x86_64-15.1.0-release-win32-seh-msvcrt-rt_v12-rev0.7z
  • Para compilaciones de 32 bits: 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).

Instalación de OpenSSL

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:

pacman -S perl-Locale-Maketext-Simple
       pacman -S nasm
       pacman -S make
       pacman -S cmake

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:

  • Para compilaciones de 64 bits:
#!/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
  • Para compilaciones de 32 bits:
#!/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.

  • 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.

4. Configure e instale OpenSSL ejecutando el script (tenga en cuenta que esto puede tardar algún tiempo):

cd /c/Zabbix/openssl-3.5.0
       ./build.sh
Instalando PCRE2

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:

mkdir /c/Zabbix/pcre2-10.45/build
       cd /c/Zabbix/pcre2-10.45/build

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:

make install
Compilando Zabbix agent 2

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:

  • Para compilaciones de 64 bits:
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"
  • Para compilaciones de 32 bits:
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.