Áú»¢¶Ä²©

This is a translation of the original English documentation page. Help us make it better.

1 Áú»¢¶Ä²©-agent bouwen op Windows

Overzicht

Dit gedeelte laat zien hoe je Áú»¢¶Ä²© Windows-agent binairies kunt compileren vanuit bronnen met of zonder TLS.

Compileren van OpenSSL

De volgende stappen helpen je bij het compileren van OpenSSL vanuit bronnen op Windows 10 (64-bits).

  1. Voor het compileren van OpenSSL heb je het volgende nodig op je Windows-machine:

    1. C-compiler (bijv. VS 2017 RC),
    2. NASM (),
    3. Perl (bijv. Strawberry Perl van ),
    4. Perl-module Text::Template (cpan Text::Template).
  2. Haal de bronnen van OpenSSL op via . Hier wordt OpenSSL 1.1.1 gebruikt.

  3. Pak de bronnen van OpenSSL uit, bijvoorbeeld in E:\openssl-1.1.1.

  4. Open een opdrachtregelvenster, zoals de x64 Native Tools Command Prompt voor VS 2017 RC.

  5. Ga naar de map met de broncode van OpenSSL, bijvoorbeeld E:\openssl-1.1.1.

    1. Controleer of NASM kan worden gevonden: e:\openssl-1.1.1> nasm --version NASM version 2.13.01 compiled on May 1 2017
  6. 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

    • Let op de optie 'no-shared': als 'no-shared' wordt gebruikt, worden de statische bibliotheken van OpenSSL libcrypto.lib en libssl.lib 'zelfvoorzienend' en bevatten de resulterende Áú»¢¶Ä²©-binaries OpenSSL zelf, er is geen behoefte aan externe OpenSSL DLL's. Voordeel: Áú»¢¶Ä²©-binaries kunnen naar andere Windows-machines worden gekopieerd zonder OpenSSL-bibliotheken. Nadeel: wanneer er een nieuwe bugfix-versie van OpenSSL wordt uitgebracht, moet de Áú»¢¶Ä²©-agent opnieuw worden gecompileerd en ge?nstalleerd.
    • Als 'no-shared' niet wordt gebruikt, gebruiken de statische bibliotheken libcrypto.lib en libssl.lib OpenSSL DLL's tijdens runtime. Voordeel: wanneer er een nieuwe bugfix-versie van OpenSSL wordt uitgebracht, kun je waarschijnlijk alleen de OpenSSL DLL's upgraden, zonder de Áú»¢¶Ä²©-agent opnieuw te compileren. Nadeel: bij het kopi?ren van de Áú»¢¶Ä²©-agent naar een andere machine moeten ook OpenSSL DLL's worden gekopieerd.
  7. Compileer OpenSSL, voer tests uit en 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 (bijv. bibliotheken, kopteksten, maar geen documentatie). Als je alles wilt, gebruik dan "nmake install".`

Compileren van PCRE

  1. Download de PCRE of PCRE2-bibliotheek (ondersteund sinds Áú»¢¶Ä²© 6.0) ().
  2. Pak het uit naar de map E:\pcre2-10.39.
  3. Installeer CMake vanaf . Tijdens de installatie, zorg ervoor dat cmake\bin in je pad staat (geteste versie 3.9.4).
  4. Maak een nieuwe, lege buildmap aan, bij voorkeur een submap van de bronmap. Bijvoorbeeld E:\pcre2-10.39\build.
  5. Open een opdrachtregelvenster, bijvoorbeeld de x64 Native Tools Command Prompt voor VS 2017, en voer vanuit die shellomgeving cmake-gui uit. Probeer Cmake niet te starten vanuit het Windows Start-menu, omdat dit fouten kan veroorzaken.
  6. Voer E:\pcre2-10.39 en E:\pcre2-10.39\build in voor respectievelijk de bron- en buildmappen.
  7. Klik op de knop "Configure".
  8. Selecteer bij het specificeren van de generator voor dit project "NMake Makefiles".
  9. Maak een nieuwe, lege installatiemap aan. Bijvoorbeeld E:\pcre2-10.39-install.
  10. De GUI toont vervolgens verschillende configuratieopties. Zorg ervoor dat de volgende opties zijn geselecteerd:
    • PCRE_SUPPORT_UNICODE_PROPERTIES ON
    • PCRE_SUPPORT_UTF ON
    • CMAKE_INSTALL_PREFIX E:\pcre2-10.39-install
  11. Klik nogmaals op "Configure". De naastgelegen knop "Generate" zou nu actief moeten zijn.
  12. Klik op "Generate".
  13. Als er fouten optreden, wordt aanbevolen dat je de CMake-cache verwijdert voordat je het CMake-buildproces opnieuw probeert uit te voeren. In de CMake GUI kan de cache worden verwijderd door "File > Delete Cache" te selecteren.
  14. De buildmap moet nu een bruikbaar buildsysteem bevatten - Makefile.
  15. Open een opdrachtregelvenster, bijvoorbeeld de x64 Native Tools Command Prompt voor VS 2017, en navigeer naar de eerder genoemde Makefile.
  16. Voer het NMake-commando uit: E:\pcre2-10.39\build> nmake install

Compileren van Áú»¢¶Ä²©

De volgende stappen helpen je bij het compileren van Áú»¢¶Ä²© vanuit bronnen op Windows 10 (64-bits). Het enige significante verschil bij het compileren van Áú»¢¶Ä²© met/zonder TLS-ondersteuning bevindt zich in stap 4.

  1. Op een Linux-machine haal je de broncode op via 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. Kopieer en pak het archief uit, bijvoorbeeld zabbix-4.4.0.tar.gz, op een Windows-machine.
  3. Laten we aannemen dat de bronnen zich bevinden in e:\zabbix-4.4.0. Open een opdrachtregelvenster, bijvoorbeeld de x64 Native Tools Command Prompt voor VS 2017 RC. Ga naar E:\zabbix-4.4.0\build\win32\project.
  4. Compileer zabbix_get, zabbix_sender en zabbix_agent.
    • zonder TLS: E:\zabbix-4.4.0\build\win32\project> nmake /K PCREINCDIR=E:\pcre2-10.39-install\include PCRELIBDIR=E:\pcre2-10.39-install\lib
    • met 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 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
  5. De nieuwe binaires bevinden zich in e:\zabbix-4.4.0\bin\win64. Omdat OpenSSL is gecompileerd met de 'no-shared' optie, bevatten de Áú»¢¶Ä²© binaires OpenSSL binnenin en kunnen ze worden gekopieerd naar andere machines die geen OpenSSL hebben.

Compilatie van Áú»¢¶Ä²© met LibreSSL

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:

  • In Makefile_tls verwijder /DHAVE_OPENSSL_WITH_PSK, dat wil zeggen, zoek:
CFLAGS = $(CFLAGS) /DHAVE_OPENSSL /DHAVE_OPENSSL_WITH_PSK

en vervang het door

CFLAGS = $(CFLAGS) /DHAVE_OPENSSL
  • In Makefile_common.inc voeg /NODEFAULTLIB:LIBCMT toe, dat wil zeggen, zoek:
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb

en vervang het door

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