This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

Construction des binaires d'agent Windows avec/sans TLS

Aperçu

Cette section explique comment créer des binaires d'agent Windows à partir de sources avec ou sans TLS.

Compilation 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 la machine Windows :
    1. Compilateur C (par exemple, VS 2017 RC),
    2. NASM (https://www.nasm.us/),
    3. Perl (par exemple Strawberry Perl de http://strawberryperl.com/ ),
    4. Module Perl Text::Template (cpan Text::Template).
  2. Obtenez les sources OpenSSL sur 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 d'invite de commande, par exemple l'invite de commande x64 Native Tools pour VS 2017 RC.
  5. Allez dans le répertoire source 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 'autonomes' et les binaires Zabbix résultants incluront OpenSSL en eux-mêmes. Pas besoin de DLLs externe OpenSSL. Avantage : les binaires Zabbix peuvent être copiés sur d'autres machines Windows sans bibliothèques OpenSSL. Inconvénient : lorsqu'une nouvelle version du correctif 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 des DLL OpenSSL au moment de l'exécution. Avantage : lorsqu'une nouvelle version du correctif OpenSSL est publiée, vous pouvez mettre à jour 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 la documentation). Si vous voulez tout, utilisez "nmake install".

Compilation PCRE

  1. Téléchargez la bibliothèque PCRE (nouvelle bibliothèque obligatoire pour Zabbix 4.0) à partir de pcre.org, version 8.XX ; pas pcre2 (ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.zip)
  2. Extraire dans le répertoire E:\pcre-8.41
  3. Installez CMake à partir de https://cmake.org/download/, lors de l'installation, sélectionnez : et assurez-vous que cmake\bin est sur votre chemin (version testée 3.9.4).
  4. Créez un nouveau répertoire de vide, de préférence un sous-répertoire du répertoire source. Par exemple, E:\pcre-8.41\build.
  5. Ouvrez une fenêtre de ligne de commande, par exemple l'invite de commandes x64 Native Tools pour VS 2017 et exécutez cmake-gui à partir de cet environnement shell. N'essayez pas de démarrer Cmake à partir du menu Démarrer de Windows, cela pourrait entraîner des erreurs.
  6. Entrez E:\pcre-8.41 et E:\pcre-8.41\build pour les répertoires source et build, respectivement.
  7. Appuyez sur le bouton "Configure".
  8. Lorsque vous spécifiez le générateur pour ce projet, sélectionnez "NMake Makefiles".
  9. Créez un nouveau répertoire d'installation vide. Par exemple, E:\pcre-8.41-install.
  10. L'interface graphique listera alors plusieurs options de configuration. Assurez-vous que les options suivantes sont sélectionnées :
    • PCRE_SUPPORT_UNICODE_PROPERTIES ON
    • PCRE_SUPPORT_UTF ON
    • CMAKE_INSTALL_PREFIX E:\pcre-8.41-install
  11. Cliquez sur "Configure" une nouvelle fois. Le bouton "Generate" adjacent devrait maintenant être actif.
  12. Cliquez sur "Generate".
  13. Si des erreurs se produisent, il est recommandé de supprimer le cache CMake avant d'essayer 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 "File > Delete Cache".
  14. Le répertoire de construction doit maintenant contenir un système de construction utilisable - Makefile.
  15. Ouvrez une fenêtre de ligne de commande, par exemple l'invite de commande x64 Native Tools pour VS 2017 et accédez au fichier Makefile mentionné ci-dessus.
  16. Lancer la commande NMake : E:\pcre-8.41\build> nmake install

Compilation Zabbix

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

La prise en charge d’OpenSSL 1.1.1 a été ajoutée à la version 4.0.1 et à quelques corrections supplémentaires - dans la version 4.0.2rc1.

  1. Sur une machine Linux, consultez le code source de git :$ git clone https://git.zabbix.com/scm/zbx/zabbix.git $ cd zabbix $ git checkout 4.0.22 -b 4.0.22 $ ./bootstrap.sh $ ./configure --enable-agent --enable-ipv6 --prefix=`pwd` $ make dbschema $ make dist
  2. Copiez et décompressez l'archive, par exemple zabbix-4.0.2.tar.gz, sur un ordinateur Windows.
  3. Supposons que les sources sont dans e:\zabbix-4.0.2. Ouvrez une fenêtre de ligne de commande, par exemple l'invite de commande x64 Native Tools pour VS 2017 RC. Accédez à E:\zabbix-4.0.2\build\win32\project.
  4. Compilez zabbix_get, zabbix_sender et zabbix_agent.
    • sans TLS : E:\zabbix-4.0.2\build\win32\project> nmake /K PCREINCDIR=E:\pcre-8.41-install\include PCRELIBDIR=E:\pcre-8.41-install\lib
    • avec TLS : E:\zabbix-4.0.2\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:\pcre-8.41-install\include PCRELIBDIR=E:\pcre-8.41-install\lib E:\zabbix-4.0.2\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:\pcre-8.41-install\include PCRELIBDIR=E:\pcre-8.41-install\lib E:\zabbix-4.0.2\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:\pcre-8.41-install\include PCRELIBDIR=E:\pcre-8.41-install\lib
  5. Les nouveaux binaires se trouvent dans e:\zabbix-4.0.2\bin\win64. Étant donné qu'OpenSSL a été compilé avec l'option 'no-shared', les fichiers binaires de Zabbix contiennent OpenSSL en eux-mêmes et peuvent être copiés sur d'autres machines ne disposant pas d'OpenSSL.

Compiler Zabbix avec LibreSSL

La procédure 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, c'est-à-dire trouvez
CFLAGS =    $(CFLAGS) /DHAVE_OPENSSL /DHAVE_OPENSSL_WITH_PSK

et remplacez le par

CFLAGS =    $(CFLAGS) /DHAVE_OPENSSL
  • Dans Makefile_common.inc, ajoutez /NODEFAULTLIB:LIBCMT c'est-à-dire trouvez
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb

et remplacez le par

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