On this page
1 Compilant l'agent Zabbix sota Windows
Vista general
Aquesta secció ensenya com crear binaris d'agent Zabbix Windows a partir de fonts amb o sense TLS.
Compilar OpenSSL
Les passes següents us ajudaran a compilar OpenSSL des de la font a MS Windows 10 (64 bits).
- Per compilar OpenSSL, haureu de menester a una màquina Windows:
- compilació C (p. ex. VS 2017 RC),
- NASM (https://www.nasm.us/),
- Perl (per exemple, Strawberry Perl de http://strawberryperl.com/),
- Mòdul Perl Text::Template (cpan Text::Template).
- Obtingueu fonts OpenSSL de https://www.openssl.org/. Aquí s'empra OpenSSL 1.1.1.
- Descomprimiu les fonts OpenSSL, per exemple, a E:\openssl-1.1.1.
- Obriu una finestra de línia de comandes, per exemple Native Tools x64 Command Prompt per a VS 2017 RC.
- Navegueu al directori font d'OpenSSL, per exemple E:\openssl-1.1.1.
- Verifiqueu que es pot trobar NASM:
e:\openssl-1.1.1> nasm --version NASM versió 2.13.01 compilada l'1 de maig de 2017
- Verifiqueu que es pot trobar NASM:
- Configura OpenSSL, per exemple:
e:\openssl-1.1.1> perl E:\openssl-1.1.1\Configura 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- Tingueu en compte l'opció "no-shared": si s'empra "no-shared", les biblioteques estàtiques d'OpenSSL libcrypto.lib i libssl.lib seran "autosuficients" i els binaris Zabbix resultants inclouran OpenSSL, no cal per a "DLL externa OpenSSL". Avantatge: els binaris Zabbix es poden copiar a altres màquines Windows sense biblioteques OpenSSL. Desavantatge: quan es publica una nova versió de correcció d'errors d'OpenSSL, cal recompilar i tornar a instal·lar l'agent Zabbix.
- Si no s'empra "no-shared", les biblioteques estàtiques libcrypto.lib i libssl.lib empraran DLL OpenSSL quan s'executen. Avantatge: quan es publica una nova versió de correcció d'errors d'OpenSSL, probablement només podreu actualitzar les DLL d'OpenSSL, sense recompilar l'agent Zabbix. Desavantatge: per copiar l'agent Zabbix a una altra màquina també cal copiar les DLL d'OpenSSL.
- Compileu OpenSSL, executeu la prova, instal·leu:
e:\openssl-1.1.1> nmake e:\openssl-1.1.1> test nmake ... All tests successful. Fitxers=152, proves=1152, 501 segons de rellotge de paret (0,67 usr + 0,61 sys = 1,28 CPU) Resultat: PASS e:\openssl-1.1.1> nmake install_sw'install_sw' només instal·la components de programari (és a dir, biblioteques, fitxers de capçalera, però sense documentació). Si ho voleu tot, empreu "nmake install".
Compilar PCRE
- Baixeu la biblioteca PCRE o PCRE2 (admesa des de Zabbix 6.0) des del repositori pcre.org: (https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.39/pcre2-10.39.zip)
- Extraieu-lo al directori E:\pcre2-10.39
- Instal·leu CMake des de https://cmake.org/download/, en instal·lar seleccioneu i assegureu-vos que cmake\bin estigui al vostre camí (versió provada 3.9.4).
- Creeu un nou directori de compilació buit, preferiblement un subdirectori del directori font. Per exemple, E:\pcre2-10.39\build.
- Obriu una finestra de línia d'ordres, p. Native Tools x64 Command Prompt per a VS 2017 i des d'aquest entorn de shell executeu cmake-gui. No intenteu iniciar Cmake des del menú Inici de Windows, ja que això pot provocar errors.
- Introduïu E:\pcre2-10.39 i E:\pcre2-10.39\build per als directoris font i compilació, respectivament.
- Premeu el botó "Configura".
- Quan especifiqueu el generador per a aquest projecte, seleccioneu "NMake Makefiles".
- Creeu un nou directori d'instal·lació buit. Per exemple, E:\pcre2-10.39-install.
- A continuació, la GUI mostrarà diverses opcions de configuració. Assegureu-vos que les opcions següents són triades:
- PCRE_SUPPORT_UNICODE_PROPERTIES ON
- PCRE_SUPPORT_UTF ON
- CMAKE_INSTALL_PREFIX E:\pcre2-10.39-install
- Premeu "Configura" de nou. El botó "Genera" adjacent ara hauria d'ésser actiu.
- Premeu "Generar".
- En cas d'error, es recomana esborrar la memòria cau de CMake abans d'intentar repetir el procés de creació de CMake. A la GUI de CMake, la memòria cau es pot esborrar seleccionant "Fitxer > Esborrar la memòria cau".
- El directori de compilació ara hauria de contindre un sistema de compilació utilitzable - Makefile.
- Obriu una finestra de línia d'ordres, p. Native Tools x64 Command Prompt per a VS 2017 i navegueu al Makefile esmentat anteriorment.
- Executeu l'ordre NMake:
E:\pcre2-10.39\build> nmake install
Compilació de Zabbix
Les passes següents us ajudaran a compilar Zabbix des de la font a MS Windows 10 (64 bits). Quan es compila Zabbix amb/sense suport TLS, l'única diferència significativa es troba a la passa 4.
- A una màquina Linux, comproveu la font des de git:
$ git clone https://git.zabbix.com/scm/zbx/zabbix.git $ cd zabbix $ ./bootstrap.sh $ ./configure --enable-agent --enable-ipv6 --prefix=`pwd` $ faire dbschema $ faire dist - Copieu i descomprimiu l'arxiu, p. zabbix-4.4.0.tar.gz, a una màquina Windows.
- Suposem que les fonts són a e:\zabbix-4.4.0. Obriu una finestra de línia de comandes, com ara l'indicador d'ordres natiu de les eines x64 per a VS RC 2017. Aneu a E:\zabbix-4.4.0\build\win32\project.
- Compileu zabbix_get, zabbix_sender i zabbix_agent.
- sense TLS:
E:\zabbix-4.4.0\build\win32\project> nmake /K PCRE2INCDIR=E:\pcre2-10.39-install\include PCRE2LIBDIR=E:\pcre2-10.39-install\lib - amb TLS:
E:\zabbix-4.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-4.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-4.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
- sense TLS:
- Els nous binaris es troben a e:\zabbix-4.4.0\bin\win64. Com que OpenSSL es va compilar amb l'opció "no compartit", els binaris de Zabbix contenen OpenSSL en si mateixos i es poden copiar a altres màquines que no tinguin OpenSSL.
Compilar Zabbix amb LibreSSL
El procés és similar a la compilació amb OpenSSL, però cal fer petits canvis als fitxers que es troben al directori build\win32\project:
- Al Makefile_tls , esborreu
/DHAVE_OPENSSL_WITH_PSK, per exemple cerqueu:
CFLAGS = $(CFLAGS) /DHAVE\_OPENSSL /DHAVE\_OPENSSL\_WITH\_PSK
i substituïu per
CFLAGS = $(CFLAGS) /DHAVE_OPENSSL
- Al Makefile_common.inc, afegiu
/NODEFAULTLIB:LIBCMTi, per exemple, cerqueu:
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\\$(TARGETNAME).pd
i substituïu per:
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb /NODEFAULTLIB:LIBCMT