Aquesta pàgina demostra com compilar l'agent 2 de Zabbix a partir de fonts a Windows 10 (64 bits o 32 bits).
Tant les versions de 32 bits com les de 64 bits es poden compilar en una plataforma de 64 bits, però només la versió de 32 bits es pot compilar en una plataforma de 32 bits.
Per compilar l'agent 2 de Zabbix cal:
Podeu compilar l'agent 2 de Zabbix mitjançant un dels mètodes següents:
Abans d'iniciar el procés de compilació, tingueu en compte:
Per executar ordres, utilitzeu la línia d'ordres, iniciada per un usuari amb permisos suficients per escriure a carpetes protegides. Tanmateix, quan instal·leu OpenSSL i PCRE2, utilitzeu el terminal MSYS2.
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:\Zabbix\x64
(o C:\Zabbix\x86
per a compilacions de 32 bits).
Aquesta secció conté instruccions per compilar 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 el gestor de paquets vcpkg.
2. Baixeu i instal·leu Go (disponible com a instal·lador MSI). Durant la instal·lació, assegureu-vos d'especificar C:\Zabbix\Go
com a carpeta d'instal·lació.
3. Baixeu la distribució MinGW que utilitza la biblioteca d'execució de Microsoft Visual C; per exemple:
x86_64-15.1.0-release-win32-seh-msvcrt-rt_v12-rev0.7z
i686-15.1.0-release-win32-dwarf-msvcrt-rt_v12-rev0.7z
Tot seguit, extraieu-la a C:\Zabbix\mingw64
(o C:\Zabbix\mingw32
per a compilacions de 32 bits).
4. Inicialitzeu vcpkg i instal·leu les dependències necessàries per compilar l'agent 2 de Zabbix (tingueu en compte que això pot trigar una estona):
cd C:\Zabbix
set PATH=%PATH%;"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\vcpkg"
vcpkg new --application
vcpkg add port pcre2
vcpkg add port libiconv
vcpkg add port openssl
# Per a compilacions de 64 bits:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
vcpkg install --triplet x64-mingw-static --x-install-root=x64
# Per a compilacions de 32 bits:
set PATH=C:\Zabbix\mingw32\bin;%PATH%
vcpkg install --triplet x86-mingw-static --x-install-root=x86
5. Baixeu l'arxiu font de Zabbix i extraieu-lo a C:\Zabbix\zabbix-7.2.0
.
6. Navegueu fins al directori de compilació de Zabbix (C:\Zabbix\zabbix-7.2.0\build\mingw
) i creeu el següent script build.bat
:
:: Afegiu MinGW i aneu a la variable `PATH` del sistema per a la sessió actual:
set PATH=C:\Zabbix\mingw64\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%
:: Establiu la ruta d'instal·lació de vcpkg:
set vcpkg="C:\Zabbix\x64\x64-mingw-static"
:: Establiu els indicadors d'enllaç per a la biblioteca Crypt32:
SET CGO_LDFLAGS="-lCrypt32"
:: Executeu el procés de compilació:
mingw32-make GOFLAGS="-buildvcs=false" ARCH=AMD64 ^
PCRE2="%vcpkg%" ^
OPENSSL="%vcpkg%" ^
all
:: Afegiu MinGW i aneu a la variable `PATH` del sistema per a la sessió actual:
set PATH=C:\Zabbix\mingw32\bin;%PATH%
set PATH=C:\Zabbix\Go\bin;%PATH%
:: Establiu la ruta d'instal·lació de vcpkg:
set vcpkg="C:\Zabbix\x86\x86-mingw-static"
:: Establiu els indicadors d'enllaç per a la biblioteca Crypt32:
SET CGO_LDFLAGS="-lCrypt32"
:: Executeu el procés de compilació:
mingw32-make GOFLAGS="-buildvcs=false" ARCH=x86 ^
PCRE2="%vcpkg%" ^
OPENSSL="%vcpkg%" ^
tot
7. Compileu l'agent 2 de Zabbix executant l'script:
Després de la compilació, el binari de l'agent 2 de Zabbix es trobarà a C:\Zabbix\zabbix-7.2.0\bin\win64
(per a compilacions de 64 bits) o C:\Zabbix\zabbix-7.2.0\bin\win32
(per a compilacions de 32 bits). Els fitxers de configuració de l'agent 2 de Zabbix es troben a C:\Zabbix\zabbix-7.2.0\src\go\conf
.
Per executar l'agent, zabbix_agent2.exe
i els seus fitxers de configuració a una carpeta dedicada (per exemple, C:\Zabbix\agent2
) i després executeu l'agent:
mkdir C:\Zabbix\agent2
# Per a compilacions de 64 bits:
copieu C:\Zabbix\zabbix-7.2.0\bin\win64\zabbix_agent2.exe C:\Zabbix\agent2\
# Per a compilacions de 32 bits:
copieu C:\Zabbix\zabbix-7.2.0\bin\win32\zabbix_agent2.exe C:\Zabbix\agent2\
copieu C:\Zabbix\zabbix-7.2.0\src\go\conf\zabbix_agent2.win.conf C:\Zabbix\agent2\
xcopy /E /I C:\Zabbix\zabbix-7.2.0\src\go\conf\zabbix_agent2.d C:\Zabbix\agent2\zabbix_agent2.d\
C:\Zabbix\agent2\zabbix_agent2.exe -c C:\Zabbix\agent2\zabbix_agent2.win.conf
Si cal, continueu amb la compilació dels complements carregables de l'agent 2 de Zabbix.
1. Baixeu el font del complement de Zabbix que coincideixi amb la vostra versió de l'agent 2 de Zabbix (per exemple, zabbix-agent2-plugin-ember-plus-7.2.0.tar.gz
) i extraieu-lo a C:\Zabbix
.
2. Navegueu fins al directori del complement extret i compileu-lo:
cd C:\Zabbix\zabbix-agent2-plugin-ember-plus-7.2.0
# Per a compilacions de 64 bits:
mingw32-make ARCH=AMD64
# Per a compilacions de 32 bits:
mingw32-make ARCH=x86
Després de la compilació, el binari del complement Zabbix agent 2 i el seu fitxer de configuració es trobaran al mateix directori del complement.
L'executable del connector es pot posar a qualsevol lloc sempre que l'agent 2 de Zabbix el pugui carregar. Especifiqueu la ruta al binari del connector al fitxer de configuració del connector, per exemple, a ember.conf per al connector Ember+:
La ruta al fitxer de configuració del connector s'ha d'especificar al paràmetre Include del fitxer de configuració de l'agent 2 de Zabbix:
Aquest mètode de compilació de l'agent 2 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 2 de Zabbix, que inclouen la instal·lació de les eines i dependències de compilació necessàries i, a continuació, la compilació de l'agent.
1. Baixeu i instal·leu MSYS2 (disponible com a instal·lador MSI). Durant la instal·lació, assegureu-vos d'especificar C:\Zabbix\msys64
com a carpeta d'instal·lació.
2. Baixeu i instal·leu Go (disponible com a instal·lador MSI; veieu les [versions de Go] actualment compatibles (/manual/installation/requirements#agent-2)). Durant la instal·lació, assegureu-vos d'especificar C:\Zabbix\Go
com a carpeta d'instal·lació.
3. Baixeu la distribució MinGW que utilitza la biblioteca d'execució de Microsoft Visual C; per exemple:
x86_64-15.1.0-release-win32-seh-msvcrt-rt_v12-rev0.7z
i686-15.1.0-release-win32-dwarf-msvcrt-rt_v12-rev0.7z
A continuació, extraieu-lo a C:\Zabbix\mingw64
(o C:\Zabbix\mingw32
per a compilacions de 32 bits).
Per compilar l'agent Zabbix sense suport TLS, aneu a la secció Instal·lació de PCRE2.
1. Obriu el terminal MSYS2 MSYS amb privilegis d'administrador i executeu les comandes següents:
2. Baixeu l'arxiu font d'OpenSSL i extraieu-lo a C:\Zabbix\openssl-3.5.0
.
3. Navegueu fins al directori OpenSSL extret i creeu el següent script build.sh
:
#!/usr/bin/env bash
export PATH="/c/Zabbix/mingw64/bin:$PATH"
export d="/c/Zabbix/x64/OpenSSL-Win64-350-static"
perl Configure mingw64 no-shared no-capieng no-winstore no-srp no-gost no-dgram no-dtls1-method no-dtls1_2-method thread_scheme=winthreads --api=1.1.0 --prefix=$d --openssldir=$d
make
make install
#!/usr/bin/env bash
export PATH="/c/Zabbix/mingw32/bin:$PATH"
export d="/c/Zabbix/x86/OpenSSL-Win64-350-static"
perl Configura mingw no-shared no-capieng no-winstore no-srp no-gost no-dgram no-dtls1-method no-dtls1_2-method thread_scheme=winthreads --api=1.1.0 --prefix=$d --openssldir=$d
make
make install
Assegureu-vos de revocar l'accés d'escriptura dels usuaris que no són administradors al directori C:\Zabbix\x64\OpenSSL-Win64-350-static
. En cas contrari, l'agent carregarà la configuració SSL des d'una ruta que poden modificar els usuaris sense privilegis, cosa que podria provocar una possible vulnerabilitat de seguretat.
no-shared
fa que les biblioteques estàtiques d'OpenSSL 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 de 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 de 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.
4. Configureu i instal·leu OpenSSL executant l'script (tingueu en compte que això pot trigar una estona):
1. Baixeu l'arxiu font de PCRE2 i extraieu-lo a C:\Zabbix\pcre2-10.45
.
2. Obriu el terminal MSYS2 amb privilegis d'administrador. Tot seguit, creeu un directori build
al directori PCRE2 extret i navegueu-hi:
3. Configura PCRE2:
# Per a compilacions de 64 bits:
export PATH="/c/Zabbix/mingw64/bin:$PATH"
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS="-O2 -g" -DCMAKE_INSTALL_PREFIX="/c/Zabbix/x64/PCRE2" ..
# Per a compilacions de 32 bits:
export PATH="/c/Zabbix/mingw32/bin:$PATH"
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS="-m32 -O2 -g" -DCMAKE_EXE_LINKER_FLAGS="-Wl,-mi386pe" -DCMAKE_INSTALL_PREFIX="/c/Zabbix/x86/PCRE2" ..
Si es produeix algun error, es recomana esborrar 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.
4. Instal·leu 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 comandes següents a una màquina Linux amb Go instal·lat (obligatori per configurar l'agent 2 de Zabbix):
git clone https://git.zabbix.com/scm/zbx/zabbix.git
cd zabbix
./bootstrap.sh
./configure --enable-agent2 --enable-ipv6 --prefix=`pwd`
make dist
Això crearà un arxiu font, que després es podrà copiar a una màquina Windows.
2. Obriu la línia de comandes amb privilegis d'administrador. Tot seguit, navegueu fins al directori de compilació de Zabbix i compileu l'agent Zabbix; Assegureu-vos d'especificar correctament els directoris on s'instal·len OpenSSL i PCRE2:
cd C:\Zabbix\zabbix-7.2.0\build\mingw
set PATH=C:\Zabbix\mingw64\bin;%PATH%
mklink /D C:\Zabbix\x64\OpenSSL-Win64-350-static\lib C:\Zabbix\x64\OpenSSL-Win64-350-static\lib64
# Amb suport TLS:
mingw32-make ARCH=AMD64 PCRE2="C:\Zabbix\x64\PCRE2" OPENSSL="C:\Zabbix\x64\OpenSSL-Win64-350-static"
# Sense suport TLS:
mingw32-make ARCH=AMD64 PCRE2="C:\Zabbix\x64\PCRE2"
cd C:\Zabbix\zabbix-7.2.0\build\mingw
set PATH=C:\Zabbix\mingw32\bin;%PATH%
# Amb suport TLS:
mingw32-make ARCH=x86 PCRE2="C:\Zabbix\x86\PCRE2" OPENSSL="C:\Zabbix\x86\OpenSSL-Win64-350-static"
# Sense suport TLS:
mingw32-make ARCH=x86 PCRE2="C:\Zabbix\x86\PCRE2"
Després de la compilació, el binari de l'agent 2 de Zabbix es trobarà a C:\Zabbix\zabbix-7.2.0\bin\win64
(o C:\Zabbix\zabbix-7.2.0\bin\win32
per a versions de 32 bits).
Els fitxers de configuració de l'agent 2 de Zabbix es troben a C:\Zabbix\zabbix-7.2.0\src\go\conf
.
Per executar l'agent, copieu el binari zabbix_agent2.exe
i els seus fitxers de configuració a una carpeta dedicada (per exemple, C:\Zabbix\agent2
) i després executeu l'agent:
mkdir C:\Zabbix\agent2
copy C:\Zabbix\zabbix-7.2.0\bin\win64\zabbix_agent2.exe C:\Zabbix\agent2\
copy C:\Zabbix\zabbix-7.2.0\src\go\conf\zabbix_agent2.win.conf C:\Zabbix\agent2\
xcopy /E /I C:\Zabbix\zabbix-7.2.0\src\go\conf\zabbix_agent2.d C:\Zabbix\agent2\zabbix_agent2.d\
C:\Zabbix\agent2\zabbix_agent2.exe -c C:\Zabbix\agent2\zabbix_agent2.win.conf
Si cal, continueu amb compilant els complements carregables de l'agent 2 de Zabbix.