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

Construire l'agent Zabbix sous Windows

Aperçu

Cette section montre comment construire l'agent Zabbix (Windows) à partir des sources avec ou sans TLS.

Compiler OpenSSL

Les étapes suivantes vous aideront à compiler OpenSSL à partir de sources sur MS Windows 10 (64 bits).

  1. Pour compiler OpenSSL, vous aurez besoin sur une machine Windows de :
    1. C compiler (par exemple VS 2017 RC),
    2. NASM (https://www.nasm.us/),
    3. Perl (par exemple Strawberry Perl de http://strawberryperl.com/),
    4. Perl module Text::Template (cpan Text::Template).
  2. Obtenez les sources OpenSSL à partir de https://www.openssl.org/. OpenSSL 1.1.1 est utilisé ici.
  3. Décompressez les sources OpenSSL, par exemple, dans E:\openssl-1.1.1.
  4. Ouvrez une fenêtre de ligne de commande, par exemple l'invite de commande x64 Native Tools pour VS 2017 RC.
  5. Accédez au répertoire source d'OpenSSL, par exemple E:\openssl-1.1.1.
    1. Vérifiez que NASM peut être trouvé :e:\openssl-1.1.1> nasm --version NASM version 2.13.01 compiled on May 1 2017
  6. Configurez OpenSSL, par exemple :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
    • Notez l'option 'no-shared' : si 'no-shared' est utilisé, les bibliothèques statiques OpenSSL libcrypto.lib et libssl.lib seront 'autosuffisantes' et les binaires Zabbix résultants incluront OpenSSL en eux-mêmes, pas besoin d'external DLL OpenSSL. Avantage : les binaires Zabbix peuvent être copiés sur d'autres machines Windows sans bibliothèques OpenSSL. Inconvénient : lorsqu'une nouvelle version de correction de bogues OpenSSL est publiée, l'agent Zabbix doit être recompilé et réinstallé.
    • Si 'no-shared' n'est pas utilisé, les bibliothèques statiques libcrypto.lib et libssl.lib utiliseront les DLL OpenSSL lors de l'exécution. Avantage : lorsqu'une nouvelle version de correction de bogues OpenSSL est publiée, vous ne pouvez probablement mettre à niveau que les DLL OpenSSL, sans recompiler l'agent Zabbix. Inconvénient : la copie de l'agent Zabbix sur une autre machine nécessite également la copie des DLL OpenSSL.
  7. Compilez OpenSSL, lancez des tests, installez :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' installe uniquement les composants logiciels (c'est-à-dire les bibliothèques, les fichiers d'en-tête, mais pas de documentation). Si vous voulez tout, utilisez "nmake install".

Compilation du PCRE

  1. Télécharger la bibliothèque PCRE ou PCRE2 (prise en charge depuis Zabbix 6.0) depuis le référentiel pcre.org : (https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.39/pcre2-10.39.zip)
  2. Extraire dans le répertoire E:\pcre2-10.39
  3. Installer CMake à partir de https://cmake.org/download/, lors de l'installation, sélectionner et s'assurer que cmake\bin est sur votre chemin (version testée 3.9.4).
  4. Créer un nouveau répertoire de construction vide, de préférence un sous-répertoire du répertoire source. Par exemple, E:\pcre2-10.39\build.
  5. Ouvrir une fenêtre de ligne de commande, par ex. l'invite de commande x64 Native Tools pour VS 2017 et à partir de cet environnement shell, exécuter cmake-gui. Ne pas essayer de démarrer Cmake à partir du menu Démarrer de Windows, car cela peut entraîner des erreurs.
  6. Saisir E:\pcre2-10.39 et E:\pcre2-10.39\build pour les répertoires source et build, respectivement.
  7. Appuyer sur le bouton "Configurer".
  8. Lors de la spécification du générateur pour ce projet, sélectionner "NMake Makefiles".
  9. Créer un nouveau répertoire d'installation vide. Par exemple, E:\pcre2-10.39-install.
  10. L'interface graphique listera alors plusieurs options de configuration. S'assurer que les options suivantes sont bien sélectionnées :
    • PCRE_SUPPORT_UNICODE_PROPERTIES ON
    • PCRE_SUPPORT_UTF ON
    • CMAKE_INSTALL_PREFIX E:\pcre2-10.39-install
  11. Appuyer à nouveau sur "Configurer". Le bouton "Générer" adjacent devrait maintenant être actif.
  12. Appuyer sur "Générer".
  13. En cas d'erreurs, il est recommandé de supprimer le cache CMake avant de tenter de répéter le processus de génération CMake. Dans l'interface graphique de CMake, le cache peut être supprimé en sélectionnant "Fichier > Supprimer le cache".
  14. Le répertoire de construction devrait maintenant contenir un système de construction utilisable - Makefile.
  15. Ouvrir une fenêtre de ligne de commande, par ex. l'invite de commande x64 Native Tools pour VS 2017 et accéder au * Makefile * mentionné ci-dessus.
  16. Exécuter la commande NMake : E:\pcre2-10.39\build> nmake install

Compilation de Zabbix

Les étapes suivantes vous aideront à compiler Zabbix à partir de sources sur MS Windows 10 (64 bits). Lors de la compilation de Zabbix avec/sans prise en charge TLS, la seule différence significative est à l'étape 4.

  1. Sur une machine Linux, vérifiez la source à partir du 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
  2. Copiez et décompressez l'archive, par ex. zabbix-4.4.0.tar.gz, sur une machine Windows.
  3. Supposons que les sources sont dans e:\zabbix-4.4.0. Ouvrir une fenêtre de ligne de commande, par ex. l'invite de commande des outils natifs x64 pour VS RC 2017. Accédez à E:\zabbix-4.4.0\build\win32\project.
  4. Compilez zabbix_get, zabbix_sender et zabbix_agent.
    • sans 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
    • avec 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. Les nouveaux fichiers binaires sont situés dans e:\zabbix-4.4.0\bin\win64. Comme OpenSSL a été compilé avec l'option 'no-shared', les binaires Zabbix contiennent OpenSSL en eux-mêmes et peuvent être copiés vers d'autres machines qui n'ont pas OpenSSL.

Compiler Zabbix avec LibreSSL

Le processus est similaire à la compilation avec OpenSSL, mais vous devez apporter de petites modifications aux fichiers situés dans le répertoire build\win32\project :

  • Dans "Makefile_tls" , supprimez "/DHAVE_OPENSSL_WITH_PSK".
    Par exemple, cherchez CFLAGS = $(CFLAGS) /DHAVE\_OPENSSL /DHAVE\_OPENSSL\_WITH\_PSK et remplacez par CFLAGS = $(CFLAGS) /DHAVE_OPENSSL

  • Dans 'Makefile_common.inc'', ajoutez ''/NODEFAULTLIB:LIBCMT''
    Par exemple, cherchez /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\\$(TARGETNAME).pd et remplacez par /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb /NODEFAULTLIB:LIBCMT