1 Compilant l'agent Zabbix sota Windows

Visió general

Aquesta pàgina ensenya com compilar l'agent Zabbix des del codi font a Windows 10 (64 bits).

Aquestes instruccions s'apliquen a les versions de Windows que admeten Visual Studio 2022.

Per la compilació de l'agent Zabbix cal:

  • Compilador de C (inclòs a Build Tools for Visual Studio 2022)
  • OpenSSL (per a les funcions de xifratge a Zabbix)
  • PCRE2 (expressions regulars compatibles amb Perl; per a les funcions de coincidència de patrons d'expressions regulars a Zabbix)

Podeu compilar l'agent Zabbix mitjançant un dels mètodes següents:

  • Utilitzant vcpkg: un enfocament automatitzat que simplifica la gestió de dependències amb un gestor de paquets C++.
  • Compilació manual: un enfocament manual que requereix la instal·lació de totes les dependències abans de compilar l'agent.

Segons les vostres necessitats de monitoratge, poden caldre biblioteques addicionals. Per a més informació, consulteu els Requisits.

Abans d'engegar el procés de compilació, tingueu en compte:

  • Per executar ordres, utilitzeu la línia de comandes de les eines natives de x64 (inclosa a les eines de compilació per al Visual Studio 2022), iniciada per un usuari amb permisos suficients per escriure a les carpetes protegides.

  • Es recomana crear un directori de treball a C:\Zabbix per a tots els fitxers font i les carpetes de compilació. Tanmateix, els components compilats s'han d'instal·lar a C:\Program Files\Zabbix\x64.

Creació de l'agent Zabbix amb vcpkg

Aquesta secció conté instruccions per crear l'agent Zabbix amb vcpkg, un gestor de paquets que simplifica la gestió de dependències i la integració amb projectes C++.

1. Baixeu i instal·leu Build Tools for Visual Studio 2022. Durant la instal·lació, assegureu-vos de triar la càrrega de treball Desenvolupament d'escriptori amb C++, que inclou les eines necessàries per crear l'agent amb vcpkg:

  • Compilador de C (Microsoft Visual C++)
  • Eina de línia d'ordres NMake
  • Gestor de paquets vcpkg
  • Indicador d'ordres d'eines natives x64

2. Inicialitzeu vcpkg i instal·leu les dependències necessàries per compilar l'agent Zabbix (tingueu en compte que això pot trigar una estona):

cd C:\Zabbix
       vcpkg new --application
       vcpkg add port pcre2
       vcpkg add port openssl
       vcpkg install --triplet x64-windows-static --x-install-root="C:\Program Files\Zabbix\x64"

3. Baixeu l'arxiu font de Zabbix i extraieu-lo a C:\Zabbix\zabbix-7.2.0.

4. Navegueu fins al directori de compilació de Zabbix (C:\Zabbix\zabbix-7.2.0\build\win32\project) i creeu el següent script build.bat; Assegureu-vos d'especificar correctament els directoris on s'instal·len OpenSSL i PCRE2:

:: Estableix la ruta d'instal·lació de vcpkg:
       set vcpkg=C:\Program Files\Zabbix\x64\x64-windows-static
       
       :: Executa el procés de compilació:
       nmake -f Makefile CPU=AMD64 ^
       PCRE2INCDIR="%vcpkg%\include" ^
       PCRE2LIBDIR="%vcpkg%\lib" ^
       TLS=openssl ^
       TLSINCDIR="%vcpkg%\include" ^
       TLSLIBDIR="%vcpkg%\lib" ^
       LIBS="$(LIBS) Crypt32.lib" ^
       all

5. Compileu l'agent Zabbix executant l'script:

build.bat

Després de la compilació, els binaris dels components Zabbix es trobaran a C:\Zabbix\zabbix-7.2.0\bin\win64. El fitxer de configuració de l'agent Zabbix es troba a C:\Zabbix\zabbix-7.2.0\conf.

Per executar l'agent, copieu zabbix_agent.exe i el seu fitxer de configuració a una carpeta dedicada (per exemple, C:\Zabbix\agent) i després executeu l'agent:

mkdir C:\Zabbix\agent
       copy C:\Zabbix\zabbix-7.2.0\bin\win64\zabbix_agent.exe C:\Zabbix\agent\
       copy C:\Zabbix\zabbix-7.2.0\conf\zabbix_agent.win.conf C:\Zabbix\agent\
       
       C:\Zabbix\agent\zabbix_agent.exe -c C:\Zabbix\agent\zabbix_agent.win.conf

Compilació manual de l'agent de Zabbix

Aquest mètode de compilació de l'agent de Zabbix és adequat per a usuaris que necessiten un control total sobre l'entorn de compilació o que es troben en un entorn restringit on no és possible utilitzar vcpkg.

Aquesta secció conté instruccions per compilar manualment l'agent de Zabbix, que inclouen la instal·lació de les eines i dependències (Perl, OpenSSL, PCRE2) de compilació necessàries i, a continuació, la compilació de l'agent.

Instal·lació d'eines de compilació

1. Baixeu i instal·leu Build Tools for Visual Studio 2022. Durant la instal·lació, assegureu-vos de triar la càrrega de treball Desenvolupament d'escriptori amb C++, que inclou les eines necessàries per compilar l'agent manualment:

  • Compilador de C (Microsoft Visual C++)
  • Eina de línia d'ordres NMake
  • Indicador d'ordres de x64 Native Tools
Instal·lació d'OpenSSL

Per compilar l'agent Zabbix sense suport TLS, aneu a la secció Instal·lació de PCRE2.

1. Baixeu i instal·leu Strawberry Perl (disponible com a instal·lador MSI). Durant la instal·lació, assegureu-vos d'especificar C:\Zabbix\Strawberry com a carpeta d'instal·lació.

2. Instal·leu el mòdul Perl Text::Template:

cpanm Text::Template

3. Verifiqueu que el Netwide Assembler (NASM; necessari per compilar OpenSSL) s'ha compilat durant la instal·lació de Strawberry Perl:

nasm -v
       # NASM versió 2.16.01 compilada el 3 de maig de 2024

Si el NASM no és compilat, instal·leu-lo manualment. Per a més informació, consulteu la documentació del NASM.

4. Baixeu l'arxiu font d'OpenSSL i extraieu-lo a C:\Zabbix\openssl-3.5.0.

5. Navegueu fins al directori extret i configureu OpenSSL, per exemple:

cd C:\Zabbix\openssl-3.5.0
       perl Configure VC-WIN64A no-shared no-capieng no-winstore no-srp no-gost no-dgram no-dtls1-method no-dtls1_2-method --api=1.1.0 --prefix="C:\Program Files\Zabbix\x64\OpenSSL" --openssldir="C:\Program Files\Zabbix\x64\OpenSSL"

Si trieu un directori personalitzat per a OpenSSL quan compileu l'agent Zabbix a Windows (per exemple, C:\zabbix o C:\openssl-64bit), assegureu-vos de revocar l'accés d'escriptura dels usuaris que no són administradors a aquest directori. Altrament, l'agent carregarà la configuració SSL des d'una ruta que poden modificar els usuaris sense privilegis, cosa que podria resultar en una possible vulnerabilitat de seguretat.

  • L'opció no-shared fa que les biblioteques estàtiques libcrypto.lib i libssl.lib siguin autònomes, de manera que els binaris de Zabbix inclouen OpenSSL sense necessitat de DLL externes. Això significa que els binaris de Zabbix es poden copiar a altres màquines Windows sense biblioteques OpenSSL; tanmateix, quan es publiqui una nova versió de correcció d'errors d'OpenSSL, caldrà recompilar l'agent Zabbix.
  • Sense l'opció no-shared, Zabbix es basa en les DLL d'OpenSSL en temps d'execució. Això significa que les actualitzacions d'OpenSSL poden no requerir la recompilació de l'agent Zabbix; tanmateix, en copiar-lo a altres màquines, també s'han de copiar les DLL d'OpenSSL.

Per obtindre més informació sobre altres opcions de configuració d'OpenSSL, consulteu la documentació d'OpenSSL.

6. Compileu OpenSSL i executeu proves (tingueu en compte que això pot trigar una estona):

Executeu les proves sense privilegis d'administrador; en cas contrari, pot donar resultats inesperats o riscos de seguretat. Si algunes proves fallen, consulteu la documentació d'OpenSSL per a la resolució de problemes.

nmake
       nmake test
       ...
       Totes les proves han estat correctes.
       Fitxers=325, Proves=3101, 822 segons de rellotge de paret (4.81 usr + 0.81 sistema = 5.62 CPU)
       Resultat: APROVAT

7. Instal·leu OpenSSL:

nmake install

Per instal·lar només components de programari (biblioteques, fitxers d'encapçalament, però sense documentació), podeu utilitzar nmake install_sw.

Instal·lació de PCRE2

1. Baixeu i instal·leu CMake (disponible com a instal·lador MSI).

Durant la instal·lació, assegureu-vos d'especificar C:\Zabbix\CMake com a carpeta d'instal·lació i trieu l'opció Afegeix CMake a la variable d'entorn PATH.

2. Baixeu l'arxiu font de PCRE2 i extraieu-lo a C:\Zabbix\pcre2-10.45.

3. Creeu un directori build al directori PCRE2 extret i navegueu-hi:

mkdir C:\Zabbix\pcre2-10.45\build
       cd C:\Zabbix\pcre2-10.45\build

4. Configura PCRE2:

cmake -G "NMake Makefiles" -DPCRE_SUPPORT_UNICODE_PROPERTIES=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="C:\Program Files\Zabbix\x64\PCRE2" "C:\Zabbix\pcre2-10.45"

Si es produeix algun error, es recomana suprimir la memòria cau de CMake abans d'intentar repetir el procés de compilació de CMake. La memòria cau (CMakeCachecache.txt) es pot trobar al directori de compilació del directori PCRE2 extret.

5. Compilar PCRE2 amb NMake:

nmake

6. Instal·lar PCRE2:

cmake --install .
Compilació de l'agent Zabbix

1. Baixeu l'arxiu font de Zabbix i extraieu-lo a C:\Zabbix\zabbix-7.2.0.

Si necessiteu generar un arxiu font des del repositori de fonts en brut (per exemple, per aplicar pegats personalitzats o compilar des del codi font més recent), executeu les ordres següents en una màquina Linux:

git clone https://git.zabbix.com/scm/zbx/zabbix.git
       cd zabbix
       ./bootstrap.sh
       ./configure --enable-agent --enable-ipv6 --prefix=`pwd`
       make dist

Això crearà un arxiu font, que després es podrà copiar a una màquina Windows.

2. Navegueu fins al directori de compilació de Zabbix i compileu l'agent Zabbix (o altres components); Assegureu-vos d'especificar correctament els directoris on s'instal·len OpenSSL i PCRE2:

cd C:\Zabbix\zabbix-7.2.0\build\win32\project
       
       # Amb suport TLS:
       nmake /K -f Makefile_agent PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib" TLS=openssl TLSINCDIR="C:\Program Files\Zabbix\x64\OpenSSL\include" TLSLIBDIR="C:\Program Files\Zabbix\x64\OpenSSL\lib"
       nmake /K -f Makefile_get PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Fitxers\Zabbix\x64\PCRE2\lib" TLS=openssl TLSINCDIR="C:\Fitxers de programa\Zabbix\x64\OpenSSL\include" TLSLIBDIR="C:\Program Files\Zabbix\x64\OpenSSL\lib"
       nmake /K -f Makefile_sender PCRE2INCDIR="C:\Fitxers de programa\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib" TLS=openssl TLSINCDIR="C:\Fitxers de programa\Zabbix\x64\OpenSSL\include" TLSLIBDIR="C:\Program Files\Zabbix\x64\OpenSSL\lib"
       
       # Sense suport TLS:
       nmake /K -f Makefile_agent PCRE2INCDIR="C:\Fitxers de programa Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib"
       nmake /K -f Makefile_get PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib"
       nmake /K -f Makefile_sender PCRE2INCDIR="C:\Program Files\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Program Files\Zabbix\x64\PCRE2\lib"

Després de la compilació, els binaris dels components de Zabbix es trobaran a C:\Zabbix\zabbix-7.2.0\bin\win64. El fitxer de configuració de l'agent Zabbix es troba a C:\Zabbix\zabbix-7.2.0\conf.

Per executar l'agent, copieu zabbix_agent.exe i el seu fitxer de configuració a una carpeta dedicada (per exemple, C:\Zabbix\agent) i després executeu l'agent:

mkdir C:\Zabbix\agent
       copy C:\Zabbix\zabbix-7.2.0\bin\win64\zabbix_agentd.exe C:\Zabbix\agent\
       copy C:\Zabbix\zabbix-7.2.0\conf\zabbix_agentd.win.conf C:\Zabbix\agent\
       
       C:\Zabbix\agent\zabbix_agentd.exe -c C:\Zabbix\agent\zabbix_agentd.win.conf -f