Building Zabbix agent on Windows
Przegląd
Ta strona pokazuje, jak zbudować Zabbix agent ze źródeł w systemie Windows 10 (64-bit).
Te instrukcje dotyczą wersji Windows, które obsługują Visual Studio 2022.
Budowanie Zabbix agent wymaga:
- kompilatora C (dołączonego do Build Tools for Visual Studio 2022)
- OpenSSL (dla funkcji szyfrowania w Zabbix)
- PCRE2 (Perl Compatible Regular Expressions; dla funkcji dopasowywania wzorców wyrażeń regularnych w Zabbix)
Możesz zbudować Zabbix agent, korzystając z jednej z następujących metod:
- Korzystanie z vcpkg — zautomatyzowane podejście, które upraszcza zarządzanie zależnościami przy użyciu menedżera pakietów C++.
- Budowanie ręczne — ręczne podejście, które wymaga zainstalowania wszystkich zależności przed skompilowaniem agent.
- W zależności od potrzeb monitorowania mogą być wymagane dodatkowe biblioteki. Więcej informacji można znaleźć w sekcji Wymagania.
Przed rozpoczęciem procesu budowania pamiętaj o następujących kwestiach:
- Do wykonywania poleceń używaj x64 Native Tools Command Prompt (dołączonego do Build Tools for Visual Studio 2022), uruchomionego przez użytkownika z wystarczającymi uprawnieniami do zapisu w chronionych folderach.
- Zaleca się utworzenie katalogu roboczego
C:\Zabbixdla wszystkich plików źródłowych i folderów budowania. Jednak skompilowane komponenty powinny być instalowane wC:\Program Files\Zabbix\x64.
Budowanie Zabbix agent przy użyciu vcpkg
Ta sekcja zawiera instrukcje dotyczące budowania Zabbix agent przy użyciu vcpkg, menedżera pakietów, który upraszcza zarządzanie zależnościami i integrację z projektami C++.
1. Pobierz i zainstaluj Build Tools for Visual Studio 2022. Podczas instalacji upewnij się, że wybrano obciążenie Desktop development with C++, które zawiera narzędzia wymagane do budowania agent przy użyciu vcpkg:
- kompilator C (Microsoft Visual C++)
- narzędzie wiersza poleceń NMake
- menedżer pakietów vcpkg
- x64 Native Tools Command Prompt
2. Zainicjuj vcpkg i zainstaluj zależności wymagane do budowania Zabbix agent (pamiętaj, że może to zająć trochę czasu):
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. Pobierz archiwum kodu źródłowego Zabbix i rozpakuj je do C:\Zabbix\zabbix-8.0.0.
4. Przejdź do katalogu budowania Zabbix (C:\Zabbix\zabbix-8.0.0\build\win32\project) i utwórz następujący skrypt build.bat;
upewnij się, że poprawnie określono katalogi, w których zainstalowano OpenSSL i PCRE2:
:: Set vcpkg installation path:
set vcpkg=C:\Program Files\Zabbix\x64\x64-windows-static
:: Run the build process:
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. Skompiluj Zabbix agent, uruchamiając skrypt:
build.bat
Po kompilacji pliki binarne komponentów Zabbix będą znajdować się w C:\Zabbix\zabbix-8.0.0\bin\win64.
Plik konfiguracyjny Zabbix agent znajduje się w C:\Zabbix\zabbix-8.0.0\conf.
Aby uruchomić agent, skopiuj zabbix_agent.exe oraz jego plik konfiguracyjny do dedykowanego folderu (na przykład C:\Zabbix\agent), a następnie uruchom agent:
mkdir C:\Zabbix\agent
copy C:\Zabbix\zabbix-8.0.0\bin\win64\zabbix_agent.exe C:\Zabbix\agent\
copy C:\Zabbix\zabbix-8.0.0\conf\zabbix_agent.win.conf C:\Zabbix\agent\
C:\Zabbix\agent\zabbix_agent.exe -c C:\Zabbix\agent\zabbix_agent.win.conf
Ręczne budowanie Zabbix agent
Ta metoda budowania Zabbix agent jest odpowiednia dla użytkowników, którzy wymagają pełnej kontroli nad środowiskiem budowania lub znajdują się w środowisku z ograniczeniami, gdzie użycie vcpkg nie jest możliwe.
Ta sekcja zawiera instrukcje dotyczące ręcznego budowania Zabbix agent, co obejmuje instalację wymaganych narzędzi do budowania i zależności (Perl, OpenSSL, PCRE2), a następnie kompilację agent.
Instalacja narzędzi kompilacyjnych
1. Pobierz i zainstaluj Build Tools for Visual Studio 2022. Podczas instalacji upewnij się, że wybrano obciążenie Desktop development with C++, które zawiera narzędzia wymagane do ręcznego zbudowania agenta:
- kompilator C (Microsoft Visual C++)
- narzędzie wiersza poleceń NMake
- x64 Native Tools Command Prompt
Instalacja OpenSSL
Aby skompilować Zabbix agent bez obsługi TLS, przejdź do sekcji Installing PCRE2.
1. Pobierz i zainstaluj Strawberry Perl (dostępny jako instalator MSI).
Podczas instalacji upewnij się, że jako folder instalacyjny wskazano C:\Zabbix\Strawberry.
2. Zainstaluj moduł Perl Text::Template:
cpanm Text::Template
3. Sprawdź, czy Netwide Assembler (NASM; wymagany do kompilacji OpenSSL) został skompilowany podczas instalacji Strawberry Perl:
nasm -v
# NASM version 2.16.01 compiled on May 3 2024
Jeśli NASM nie został skompilowany, zainstaluj go ręcznie. Więcej informacji znajdziesz w dokumentacji NASM.
4. Pobierz archiwum źródłowe OpenSSL i rozpakuj je do C:\Zabbix\openssl-3.5.0.
5. Przejdź do rozpakowanego katalogu i skonfiguruj OpenSSL, na przykład:
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"
Jeśli podczas kompilacji Zabbix agent w systemie Windows wybierzesz niestandardowy katalog dla OpenSSL (na przykład C:\zabbix lub C:\openssl-64bit), upewnij się, że odebrano uprawnienia do zapisu w tym katalogu użytkownikom niebędącym administratorami.
W przeciwnym razie agent będzie ładować ustawienia SSL ze ścieżki, którą mogą modyfikować użytkownicy bez uprawnień, co stwarza potencjalną lukę bezpieczeństwa.
- Opcja
no-sharedpowoduje, że biblioteki statyczne OpenSSL libcrypto.lib i libssl.lib są samowystarczalne, dzięki czemu pliki binarne Zabbix zawierają OpenSSL bez potrzeby używania zewnętrznych bibliotek DLL. Oznacza to, że pliki binarne Zabbix można kopiować na inne komputery z systemem Windows bez bibliotek OpenSSL; jednak po wydaniu nowej wersji OpenSSL zawierającej poprawki błędów konieczna będzie ponowna kompilacja Zabbix agent. - Bez opcji
no-sharedZabbix korzysta z bibliotek DLL OpenSSL w czasie działania. Oznacza to, że aktualizacje OpenSSL mogą nie wymagać ponownej kompilacji Zabbix agent; jednak podczas kopiowania go na inne komputery należy również skopiować biblioteki DLL OpenSSL.
Więcej informacji o innych opcjach konfiguracji OpenSSL znajdziesz w dokumentacji OpenSSL.
6. Skompiluj OpenSSL i uruchom testy (pamiętaj, że może to zająć trochę czasu):
Uruchamiaj testy bez uprawnień administracyjnych; w przeciwnym razie może to prowadzić do nieoczekiwanych wyników lub zagrożeń bezpieczeństwa. Jeśli niektóre testy zakończą się niepowodzeniem, zapoznaj się z dokumentacją OpenSSL, aby rozwiązać problem.
nmake
nmake test
...
All tests successful.
Files=325, Tests=3101, 822 wallclock secs ( 4.81 usr + 0.81 sys = 5.62 CPU)
Result: PASS
7. Zainstaluj OpenSSL:
nmake install
Aby zainstalować tylko komponenty programowe (biblioteki, pliki nagłówkowe, ale bez dokumentacji), możesz użyć nmake install_sw.
Instalacja PCRE2
1. Pobierz i zainstaluj CMake (dostępny jako instalator MSI).
Podczas instalacji upewnij się, że jako folder instalacyjny wskazano C:\Zabbix\CMake, oraz wybierz opcję Add CMake to the PATH environment variable.
2. Pobierz archiwum kodu źródłowego PCRE2 i rozpakuj je do C:\Zabbix\pcre2-10.45.
3. Utwórz katalog build w rozpakowanym katalogu PCRE2 i przejdź do niego:
mkdir C:\Zabbix\pcre2-10.45\build
cd C:\Zabbix\pcre2-10.45\build
4. Skonfiguruj 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"
Jeśli wystąpią jakiekolwiek błędy, zaleca się usunięcie pamięci podręcznej CMake przed ponowną próbą przeprowadzenia procesu budowania CMake.
Pamięć podręczna (CMakeCachecache.txt) znajduje się w katalogu build rozpakowanego katalogu PCRE2.
5. Zbuduj PCRE2 za pomocą NMake:
nmake
6. Zainstaluj PCRE2:
cmake --install .
Kompilowanie Zabbix agent
1. Pobierz archiwum kodu źródłowego Zabbix i rozpakuj je do C:\Zabbix\zabbix-8.0.0.
Jeśli chcesz wygenerować archiwum kodu źródłowego z surowego repozytorium źródeł (np. aby zastosować własne poprawki lub zbudować z najnowszego kodu źródłowego), uruchom następujące polecenia na komputerze z systemem Linux:
git clone https://git.zabbix.com/scm/zbx/zabbix.git
cd zabbix
./bootstrap.sh
./configure --enable-agent --enable-ipv6 --prefix=`pwd`
make dist
Spowoduje to utworzenie archiwum kodu źródłowego, które następnie można skopiować na komputer z systemem Windows.
2. Przejdź do katalogu kompilacji Zabbix i skompiluj Zabbix agent (lub inne komponenty); upewnij się, że poprawnie określono katalogi, w których zainstalowano OpenSSL i PCRE2:
cd C:\Zabbix\zabbix-8.0.0\build\win32\project
# Z obsługą 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 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_sender 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"
# Bez obsługi TLS:
nmake /K -f Makefile_agent PCRE2INCDIR="C:\Program 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"
Po kompilacji pliki binarne komponentów Zabbix będą znajdować się w C:\Zabbix\zabbix-8.0.0\bin\win64.
Plik konfiguracyjny Zabbix agent znajduje się w C:\Zabbix\zabbix-8.0.0\conf.
Aby uruchomić agent, skopiuj zabbix_agent.exe oraz jego plik konfiguracyjny do dedykowanego folderu (np. C:\Zabbix\agent), a następnie uruchom agent:
mkdir C:\Zabbix\agent
copy C:\Zabbix\zabbix-8.0.0\bin\win64\zabbix_agentd.exe C:\Zabbix\agent\
copy C:\Zabbix\zabbix-8.0.0\conf\zabbix_agentd.win.conf C:\Zabbix\agent\
C:\Zabbix\agent\zabbix_agentd.exe -c C:\Zabbix\agent\zabbix_agentd.win.conf -f