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 suporten Visual Studio 2022.
Per a 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 xifrat 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 mitjançant 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'iniciar el procés de compilació, tingueu en compte:
-
Per executar comandes, utilitzeu la línia de comandes de les eines nadiues 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:\Zabbixper a tots els fitxers font i les carpetes de compilació. Tanmateix, els components compilats s'han d'instal·lar aC:\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. Engegueu vcpkg i instal·leu les dependències necessàries per compilar l'agent Zabbix (tingueu en compte que això pot trigar una mica):
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.4.0.
4. Navegueu fins al directori de compilació de Zabbix (C:\Zabbix\zabbix-7.4.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.4.0\bin\win64.
El fitxer de configuració de l'agent Zabbix es troba a C:\Zabbix\zabbix-7.4.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.4.0\bin\win64\zabbix_agent.exe C:\Zabbix\agent\
copy C:\Zabbix\zabbix-7.4.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
::: notaimportant 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 està 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-sharedfa 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 obtenir 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):
::: notaimportant Executeu les proves sense privilegis d'administrador; en cas contrari, pot provocar 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.
Compilar PCRE
-
Baixeu la biblioteca PCRE o PCRE2 des del repositori (https://pcre.org).
-
Extraieu-lo al directori E:\pcre2-10.39.
-
Instal·leu CMake des de https://cmake.org/download/, en instal·lar seleccioneu i assegureu-vos que cmake\bin estigui al vostre camí (versió provada 3.9.4).
-
Creeu un nou directori de compilació buit, preferiblement un subdirectori del directori font. Per exemple, E:\pcre2-10.39\build.
-
Obriu una finestra de línia d'ordres, p. Native Tools x64 Command Prompt per a VS 2017 i des d'aquest entorn de shell executeu cmake-gui. No intenteu iniciar Cmake des del menú Inici de Windows, ja que això pot provocar errors.
-
Introduïu E:\pcre2-10.39 i E:\pcre2-10.39\build per als directoris font i compilació, respectivament.
-
Premeu el botó "Configurar".
-
Quan especifiqueu el generador per a aquest projecte, seleccioneu "NMake Makefiles".
-
Creeu un nou directori d'instal·lació buit. Per exemple, E:\pcre2-10.39-install.
-
Tot seguit, la GUI mostrarà diverses opcions de configuració. Assegureu-vos que les opcions següents són triades:
- PCRE_SUPPORT_UNICODE_PROPERTIES ON
- PCRE_SUPPORT_UTF ON
- CMAKE_INSTALL_PREFIX E:\pcre2-10.39-install
-
Premeu "Configurar" de nou. El botó "Generar" adjacent ara hauria d'ésser actiu.
-
Premeu "Generar".
-
En cas d'error, es recomana esborrar la memòria cau de CMake abans d'intentar repetir el procés de creació de CMake. A la GUI de CMake, la memòria cau es pot esborrar seleccionant "Fitxer > Esborrar la memòria cau".
-
El directori de compilació ara hauria de contindre un sistema de compilació utilitzable - Makefile.
-
Obriu una finestra de línia d'ordres, p. Native Tools x64 Command Prompt per a VS 2017 i navegueu al Makefile esmentat anteriorment.
-
Executeu l'ordre NMake:
E:\pcre2-10.39\build> nmake install
Compilació de l'agent Zabbix
1. Baixeu l'arxiu font de Zabbix i extraieu-lo a C:\Zabbix\zabbix-7.4.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.4.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:\Fitxers de programa\Zabbix\x64\OpenSSL\lib"
nmake /K -f Makefile_sender PCRE2INCDIR="C:\Fitxers de programa\Zabbix\x64\PCRE2\include" PCRE2LIBDIR="C:\Fitxers de programa\Zabbix\x64\PCRE2\lib" TLS=openssl TLSINCDIR="C:\Fitxers de programa\Zabbix\x64\OpenSSL\include" TLSLIBDIR="C:\Fitxers de programa\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.4.0\bin\win64.
El fitxer de configuració de l'agent Zabbix es troba a C:\Zabbix\zabbix-7.4.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.4.0\bin\win64\zabbix_agentd.exe C:\Zabbix\agent\
copy C:\Zabbix\zabbix-7.4.0\conf\zabbix_agentd.win.conf C:\Zabbix\agent\
C:\Zabbix\agent\zabbix_agentd.exe -c C:\Zabbix\agent\zabbix_agentd.win.conf -f