Áú»¢¶Ä²©

Esta es una traducci¨®n de la p¨¢gina de documentaci¨®n original en espa?ol. Ay¨²danos a mejorarla.

1 Compilando el agente Áú»¢¶Ä²© en Windows

Descripci¨®n general

Esta secci¨®n muestra como compilar los binarios del Áú»¢¶Ä²© Windows agent desde el c¨®digo fuente con o sin TLS.

Compilando OpenSSL

Los siguientes pasos le ayudar¨¢n a compilar OpenSSL desde el c¨®digo fuente en MS Windows 10 (64-bit).

  1. Para compilar OpenSSL va a requerir una m¨¢quina con Windows:
    1. Un compilador C (por ejemplo VS 2017 RC),
    2. NASM (),
    3. Perl (por ejemplo Strawberry Perl de ),
    4. El m¨®dulo Perl Text::Template (cpan Text::Template).
  2. Obtenga el c¨®digo fuente de OpenSSL desde . Aqu¨ª utilizamos OpenSSL 1.1.1
  3. Extraiga el c¨®digo fuente de OpenSSL, por ejemplo, en E:\openssl-1.1.1.
  4. Abra una nueva ventana de l¨ªnea de comandos, por ejemplo la x64 Native Tools Command Prompt para VS 2017 RC.
  5. Navegue al directorio del c¨®digo fuente OpenSSL, por ejemplo. E:\openssl-1.1.1.
    1. Verifique que puede encontrar NASM:e:\openssl-1.1.1> nasm --version NASM version 2.13.01 compiled on May 1 2017
  6. Configure OpenSSL, por ejemplo: e:\openssl-1.1.1> perl E:\openssl-1.1.1\Configure VC-WIN64A no-shared no-capieng no-srp no-gost no-dgram no-dtls1-method no-dtls1_2-method --api=1.1.0 --prefix=C:\OpenSSL-Win64-111-static --openssldir=C:\OpenSSL-Win64-111-static
    • Note la opci¨®n 'no-shared': si utilizamos 'no-shared' entonces las librer¨ªas est¨¢ticas libcrypto.lib y libssl.lib de OpenSSL ser¨¢n 'autosuficientes' y como resultado los binarios Áú»¢¶Ä²© tendr¨¢n incluido OpenSSL dentro de ellos, no habr¨¢ necesidad de DLLs OpenSSL externos. Ventaja: Los binarios de Áú»¢¶Ä²© podr¨¢n ser copiados a otras maquinas Windows sin las librer¨ªas OpenSSL. Desventaja: Cuando se libere una versi¨®n bugfix de OpenSSL, Áú»¢¶Ä²© agent tendr¨¢ que ser recompilado y reinstalado.
    • Si 'no-shared' no es utilizado, entonces las librer¨ªas est¨¢ticas libcrypto.lib y libssl.lib de estar¨¢n usando los DDLs OpenSSL de en tiempo de ejecuci¨®n. Ventaja: Cuando se libere una versi¨®n bugfix de OpenSSL, probablemente solo ser¨¢ necesario actualizar los DLLs de OpenSSL, sin tener que recompilar Áú»¢¶Ä²© agent. Desventaja: el copiar Áú»¢¶Ä²© agent a otra maquina requerir¨¢ que tambi¨¦n copiemos las DLLs de OpenSSL.
  7. Compile OpenSSL, ejecute pruebas, instale:e:\openssl-1.1.1> nmake e:\openssl-1.1.1> nmake test ... All tests successful. Files=152, Tests=1152, 501 wallclock secs ( 0.67 usr + 0.61 sys = 1.28 CPU) Result: PASS e:\openssl-1.1.1> nmake install_sw'install_sw' instala s¨®lo los componentes de software (por ejemplo, librer¨ªas, archivos cabecera, pero no la documentaci¨®n). Si necesita todo, utilice "nmake install".

Compilando PCRE

  1. Descargue la biblioteca PCRE o PCRE2 ().
  2. Extraiga al directorio E:\pcre2-10.39.
  3. Instale CMake desde , 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 directorio de compilaci¨®n nuevo y vac¨ªo, preferiblemente un subdirectorio del directorio de origen. Por ejemplo, E:\pcre2-10.39\build.
  5. Abra una ventana de l¨ªnea de comandos, p.e. el s¨ªmbolo del sistema de herramientas nativas x64 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 fuentes y creaci¨®n, respectivamente.
  7. Presione el bot¨®n "Configurar".
  8. Al especificar el generador para este proyecto, seleccione "NMake Makefiles".
  9. Cree un directorio de instalaci¨®n nuevo y vac¨ªo. Por ejemplo, E:\pcre2-10.39-install.
  10. La GUI enumerar¨¢ varias opciones de configuraci¨®n. Aseg¨²rese que se seleccionan las siguientes opciones: - PCRE_SUPPORT_UNICODE_PROPERTIES ON - PCRE_SUPPORT_UTF ON - CMAKE_INSTALL_PREFIX E:\pcre2-10.39-install
  11. Presione "Configurar" nuevamente. El bot¨®n adyacente "Generar" ahora deber¨ªa estar activo.
  12. Presione "Generar".
  13. En caso de que se produzcan errores, se recomienda eliminar el cach¨¦ de CMake antes de intentar repetir el proceso de compilaci¨®n de CMake. En la GUI de CMake, el cach¨¦ se puede eliminar seleccionando "Archivo > Eliminar cach¨¦".
  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, p.e. el s¨ªmbolo del sistema de herramientas nativas x64 para VS 2017 y navegue hasta el Makefile mencionado anteriormente.
  16. Ejecute el comando NMake: E:\pcre2-10.39\build> nmake install

Compilaci¨®n de Áú»¢¶Ä²©

Los siguientes pasos le ayudar¨¢n a compilar Áú»¢¶Ä²© desde las fuentes en MS Windows 10 (64 bits). Al compilar Áú»¢¶Ä²© con o sin soporte TLS, la ¨²nica diferencia significativa est¨¢ en el paso 4.

  1. En una m¨¢quina Linux, consulte la 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
  2. Copie y descomprima el archivo, p. ej. zabbix-7.0.0.tar.gz, en una m¨¢quina Windows.
  3. Supongamos que las fuentes est¨¢n en e:\zabbix-7.0.0. Abra una ventana de l¨ªnea de comandos, p. ej. S¨ªmbolo del sistema de herramientas nativas x64 para VS 2017 RC. Vaya a E:\\zabbix-7.0.0\\build\\win32\\project.
  4. Compile zabbix_get, zabbix_sender y zabbix_agent.
  • sin TLS: E:\zabbix-7.0.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.0.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.0.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.0.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
  1. Los nuevos binarios se encuentran en e:\zabbix-7.0.0\bin\win64. Dado que OpenSSL se compil¨® con la opci¨®n 'no-shared', los binarios de Áú»¢¶Ä²© contienen OpenSSL en s¨ª mismos y se pueden copiar a otras m¨¢quinas que no tengan OpenSSL.

Compilando Áú»¢¶Ä²© con LibreSSL

El proceso es similar a compilar con OpenSSL, pero es necesario realizar peque?os cambios en los archivos ubicados en el directorio build\win32\project:

  • En Makefile_tls elimine /DHAVE_OPENSSL_WITH_PSK, es decir, busque:
CFLAGS = $(CFLAGS) /DHAVE_OPENSSL /DHAVE_OPENSSL_WITH_PSK

y reemplacelo con

CFLAGS = $(CFLAGS) /DHAVE_OPENSSL
  • En Makefile_common.inc agregue /NODEFAULTLIB:LIBCMT, es decir, busque:
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb

y reemplacelo con

/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb /NODEFAULTLIB:LIBCMT