1 Budowanie Zabbix agent na Windows
Przegląd
Ta strona pokazuje, jak zbudować agent Zabbix ze źródeł w systemie Windows 10 (64-bitowym).
Te instrukcje dotyczą wersji systemu Windows obsługujących Visual Studio 2022.
Do zbudowania agenta Zabbix wymagane są:
- Kompilator C (zawarty w Build Tools for Visual Studio 2022)
- OpenSSL (dla funkcji szyfrowania w Zabbix)
- PCRE2 (wyrażenia regularne zgodne z Perlem; dla funkcji dopasowywania wzorców wyrażeń regularnych w Zabbix)
Agenta Zabbix można zbudować przy użyciu jednej z następujących metod:
- Użycie vcpkg — zautomatyzowane podejście upraszczające zarządzanie zależnościami za pomocą menedżera pakietów C++.
- Kompilacja ręczna — ręczne podejście wymagające zainstalowania wszystkich zależności przed skompilowaniem agenta.
W zależności od potrzeb związanych z monitorowaniem mogą być wymagane dodatkowe biblioteki. Więcej informacji można znaleźć w sekcji Wymagania.
Przed rozpoczęciem procesu kompilacji należy pamiętać:
- Do wykonywania poleceń należy używać narzędzia „x64 Native Tools Command Prompt” (zawartego w 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:\Zabbixna wszystkie pliki źródłowe i foldery kompilacji. Jednak skompilowane komponenty powinny zostać zainstalowane wC:\Program Files\Zabbix\x64.
Budowanie agent Zabbix za pomocą vcpkg
Ta sekcja zawiera instrukcje dotyczące budowania agent Zabbix za pomocą vcpkg, menedżera pakietów upraszczającego zarządzanie zależnościami i integrację z projektami C++.
1. Pobierz i zainstaluj Build Tools for Visual Studio 2022. Podczas instalacji wybierz obciążenie Desktop development with C++, które zawiera narzędzia wymagane do budowania agent za pomocą vcpkg:
- Kompilator C (Microsoft Visual C++)
- Narzędzie wiersza poleceń NMake
- Menedżer pakietów vcpkg
- „x64 Native Tools Command Prompt”
2. Otwórz cmd.exe z uprawnieniami administratora, zainicjuj vcpkg i zainstaluj zależności wymagane do budowania agent Zabbix (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 źródłowe Zabbix i rozpakuj je do C:\Zabbix\zabbix-7.0.0.
4. Przejdź do katalogu kompilacji Zabbix (C:\Zabbix\zabbix-7.0.0\build\win32\project) i utwórz następujący skrypt build.bat;
upewnij się, że prawidłowo 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. Otwórz „x64 Native Tools Command Prompt” i skompiluj Zabbix, wykonując skrypt:
cd C:\Zabbix\zabbix-7.0.0\build\win32\project
build.bat
Jeśli otwarto inny wiersz poleceń, najpierw zainicjuj środowisko kompilacji Visual Studio:
"%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
cd C:\Zabbix\zabbix-7.0.0\build\win32\project
build.bat
Ścieżki zawierające spacje należy ujmować w cudzysłowy.
Po kompilacji pliki binarne komponentów Zabbix będą znajdować się w C:\Zabbix\zabbix-7.0.0\bin\win64.
Plik konfiguracyjny agent Zabbix znajduje się w C:\Zabbix\zabbix-7.0.0\conf.
Aby uruchomić agent, skopiuj zabbix_agent.exe i jego plik konfiguracyjny do dedykowanego folderu (np. C:\Zabbix\agent), a następnie uruchom agent:
mkdir C:\Zabbix\agent
copy C:\Zabbix\zabbix-7.0.0\bin\win64\zabbix_agent.exe C:\Zabbix\agent\
copy C:\Zabbix\zabbix-7.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.
Instalowanie narzędzi do kompilowania
1. Pobierz i zainstaluj Build Tools for Visual Studio 2022. Podczas instalacji wybierz obciążenie Desktop development with C++, które zawiera narzędzia wymagane do ręcznego kompilowania agent:
- Kompilator C (Microsoft Visual C++)
- Narzędzie wiersza poleceń NMake
- „x64 Native Tools Command Prompt”
Instalowanie OpenSSL
Aby skompilować Zabbix agent bez obsługi TLS, przejdź do sekcji Instalowanie PCRE2.
1. Pobierz i zainstaluj Strawberry Perl (dostępny jako instalator MSI).
Podczas instalacji określ C:\Zabbix\Strawberry jako folder instalacyjny.
2. Zainstaluj moduł Perl Text::Template:
cpanm Text::Template
3. Sprawdź, czy podczas instalacji Strawberry Perl został skompilowany Netwide Assembler (NASM; wymagany do kompilowania OpenSSL):
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 kompilowania Zabbix agent w systemie Windows wybierzesz niestandardowy katalog dla OpenSSL (np. C:\zabbix lub C:\openssl-64bit), upewnij się, że użytkownicy niebędący administratorami nie mają uprawnień do zapisu w tym katalogu.
W przeciwnym razie agent będzie ładować ustawienia SSL ze ścieżki, którą mogą modyfikować użytkownicy bez uprawnień administratora, co może prowadzić do powstania luki w zabezpieczeniach.
- Opcja
no-sharedsprawia, że biblioteki statyczne OpenSSL libcrypto.lib i libssl.lib są samowystarczalne, dzięki czemu pliki binarne Zabbix zawierają OpenSSL i nie wymagają 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 konieczne będzie ponowne skompilowanie Zabbix agent. - Bez opcji
no-sharedZabbix korzysta w czasie działania z bibliotek DLL OpenSSL. Oznacza to, że aktualizacje OpenSSL mogą nie wymagać ponownego kompilowania Zabbix agent; jednak podczas kopiowania go na inne komputery należy skopiować również 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 potrwać pewien czas):
Uruchom testy bez uprawnień administratora; 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 znaleźć informacje dotyczące rozwiązywania problemów.
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 składniki oprogramowania (biblioteki i pliki nagłówkowe, ale bez dokumentacji), możesz użyć polecenia 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 agent
1. Pobierz archiwum źródłowe Zabbix i wypakuj je do C:\Zabbix\zabbix-7.0.0.
Jeśli potrzebujesz wygenerować archiwum źródłowe z surowego repozytorium źródłowego (np. aby zastosować niestandardowe poprawki lub skompilować najnowszy kod źródłowy), uruchom następujące polecenia na komputerze Linux:
git clone https://git.zabbix.com/scm/zbx/zabbix.git
cd zabbix
./bootstrap.sh
./configure
make dist
Spowoduje to utworzenie archiwum źródłowego, które można następnie skopiować na komputer z systemem Windows.
2. Przejdź do katalogu kompilacji Zabbix, otwórz „x64 Native Tools Command Prompt” i skompiluj agent (lub inne komponenty); upewnij się, że prawidłowo określono katalogi, w których zainstalowano OpenSSL i PCRE2:
# Jeśli otwarto inny wiersz polecenia, najpierw zainicjuj środowisko kompilacji Visual Studio:
"%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
cd C:\Zabbix\zabbix-7.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"
Ścieżki zawierające spacje należy ujmować w cudzysłowy.
Po kompilacji pliki binarne komponentów Zabbix będą znajdować się w C:\Zabbix\zabbix-7.0.0\bin\win64.
Plik konfiguracyjny agenta Zabbix znajduje się w C:\Zabbix\zabbix-7.0.0\conf.
Aby uruchomić agenta, skopiuj zabbix_agent.exe i jego plik konfiguracyjny do dedykowanego folderu (np. C:\Zabbix\agent), a następnie uruchom agenta:
mkdir C:\Zabbix\agent
copy C:\Zabbix\zabbix-7.0.0\bin\win64\zabbix_agentd.exe C:\Zabbix\agent\
copy C:\Zabbix\zabbix-7.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