Dit gedeelte laat zien hoe je Zabbix Windows-agent binairies kunt compileren vanuit bronnen met of zonder TLS.
De volgende stappen helpen je bij het compileren van OpenSSL vanuit bronnen op MS Windows 10 (64-bit).
Voor het compileren van OpenSSL heb je het volgende nodig op een Windows-machine:
Haal de OpenSSL-bronnen op van https://www.openssl.org/. Hier wordt OpenSSL 1.1.1 gebruikt.
Pak de OpenSSL-bronnen uit, bijvoorbeeld in E:\openssl-1.1.1.
Open een opdrachtregelvenster, bijvoorbeeld de x64 Native Tools Command Prompt voor VS 2017 RC.
Ga naar de map met OpenSSL-bronnen, bijvoorbeeld E:\openssl-1.1.1.
e:\openssl-1.1.1> nasm --version NASM version 2.13.01 compiled on May 1 2017
Configureer OpenSSL, bijvoorbeeld: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
Compileer OpenSSL, voer tests uit, installeer: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' installeert alleen softwarecomponenten (d.w.z. bibliotheken, kopteksten, maar geen documentatie). Als je alles wilt, gebruik dan "nmake install".
E:\pcre2-10.39\build> nmake install
De volgende stappen helpen je bij het compileren van Zabbix vanuit bronnen op MS Windows 10 (64-bit). Bij het compileren van Zabbix met/zonder TLS-ondersteuning is het enige significante verschil te vinden in stap 4.
$ 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
E:\zabbix-4.4.0\build\win32\project> nmake /K PCREINCDIR=E:\pcre2-10.39-install\include PCRELIBDIR=E:\pcre2-10.39-install\lib
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 PCREINCDIR=E:\pcre2-10.39-install\include PCRELIBDIR=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" PCREINCDIR=E:\pcre2-10.39-install\include PCRELIBDIR=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 PCREINCDIR=E:\pcre2-10.39-install\include PCRELIBDIR=E:\pcre2-10.39-install\lib
Het proces is vergelijkbaar met het compileren met OpenSSL, maar je moet kleine wijzigingen aanbrengen in bestanden die zich bevinden in de map build\win32\project
:
/DHAVE_OPENSSL_WITH_PSK
, zoek:CFLAGS = $(CFLAGS) /DHAVE_OPENSSL /DHAVE_OPENSSL_WITH_PSK
en vervang dit door
CFLAGS = $(CFLAGS) /DHAVE_OPENSSL
/NODEFAULTLIB:LIBCMT
toe, zoek:/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb
en vervang dit door
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb /NODEFAULTLIB:LIBCMT