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:
Podeu compilar l'agent Zabbix mitjançant un dels mètodes següents:
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
.
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:
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:
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
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.
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:
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
:
3. Verifiqueu que el Netwide Assembler (NASM; necessari per compilar OpenSSL) s'ha compilat durant la instal·lació de Strawberry Perl:
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.
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.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:
Per instal·lar només components de programari (biblioteques, fitxers d'encapçalament, però sense documentació), podeu utilitzar nmake install_sw
.
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:
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:
6. Instal·lar PCRE2:
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: