3 Agent 2
Przegląd
Zabbix agent 2 to nowa generacja Zabbix agent, napisana w Go (z wykorzystaniem części kodu C odziedziczonego po Zabbix agent). Została zaprojektowana, aby:
- Zmniejszyć liczbę połączeń TCP;
- Zapewnić lepszą współbieżność sprawdzeń;
- Być łatwo rozszerzalna za pomocą pluginów, które zapewniają proste sprawdzenia przy minimalnej ilości kodu oraz obsługują złożone sprawdzenia składające się z długo działających skryptów i samodzielnego zbierania danych z okresowym raportowaniem;
- Działać jako zamiennik Zabbix agent, obsługując wszystkie wcześniejsze funkcje.
Wszystkie metryki w Zabbix agent 2 są zbierane przez pluginy.
Te funkcje są specyficzne dla pluginów:
- Zaplanowane i elastyczne interwały zarówno dla sprawdzeń pasywnych, jak i aktywnych
- Zarządzanie kolejką zadań z uwzględnieniem harmonogramu i współbieżności zadań
- Limity czasu na poziomie pluginu
- Sprawdzanie zgodności Zabbix agent 2 i jego pluginów podczas uruchamiania
Istnieją dwa typy pluginów:
Możesz również tworzyć własne pluginy.
Własnoręcznie utworzone pluginy nie muszą być wbudowane w agent 2. Możesz dodać je jako ładowalne pluginy, co upraszcza tworzenie pluginów dla nowych metryk.
Ładowalne pluginy można dodawać w czasie działania, bez ponownej kompilacji Zabbix agent 2.
Pasywne i aktywne sprawdzenia
Zabbix agent 2 obsługuje pasywne i aktywne sprawdzenia, podobnie jak Zabbix agent. Dodatkowo aktywne sprawdzenia Zabbix agent 2 obsługują elastyczne/interwały harmonogramu oraz współbieżność sprawdzeń w ramach jednego aktywnego serwera.
Domyślnie po ponownym uruchomieniu Zabbix agent 2 zaplanuje pierwsze pobranie danych dla aktywnych sprawdzeń w warunkowo losowym czasie w obrębie interwału aktualizacji pozycji, aby zapobiec skokom użycia zasobów.
Aby wykonać aktywne sprawdzenia, które nie mają Harmonogramu interwału aktualizacji bezpośrednio po ponownym uruchomieniu agenta, ustaw parametr ForceActiveChecksOnStart (na poziomie globalnym) lub Plugins.<Plugin name>.System.ForceActiveChecksOnStart (dotyczy tylko określonych sprawdzeń wtyczki) w pliku konfiguracyjnym.
Parametr na poziomie wtyczki, jeśli jest ustawiony, zastąpi parametr globalny.
Sprawdzanie współbieżności
Sprawdzenia z różnych wtyczek mogą być wykonywane równolegle.
Liczba równoczesnych sprawdzeń w ramach jednej wtyczki jest ograniczona przez ustawienie pojemności wtyczki.
Każda wtyczka może mieć zakodowane na stałe ustawienie pojemności (1000 jako wartość domyślna), które można obniżyć za pomocą ustawienia Plugins.<PluginName>.System.Capacity=N w parametrze konfiguracji Plugins.
Obsługiwane platformy
Informacje o obsługiwanych platformach można znaleźć na stronie Wymagania.
Agent 2 w systemach uniksopodobnych
Zabbix agent 2 w systemach uniksopodobnych jest uruchamiany na host monitorowanym.
Instalacja
Zabbix agent 2 można zainstalować w systemach opartych na Linuksie, korzystając z jednej z następujących metod:
- Pakiety Zabbix — wybierz komponent Agent 2 (po wybraniu wersji Zabbix, dystrybucji systemu operacyjnego i wersji systemu operacyjnego) i postępuj zgodnie z instrukcjami.
- Źródła Zabbix — pobierz pliki źródłowe i skompiluj agent, konfigurując go z opcją
--enable-agent2.
Możliwości monitorowania Zabbix agent 2 można rozszerzyć za pomocą ładowalnych wtyczek, które są dostępne oddzielnie. Szczegółowe informacje można znaleźć w sekcji Ładowalne wtyczki.
Jeśli zainstalowano jako pakiet
Zabbix agent 2 działa jako proces pierwszoplanowy i do działania w tle korzysta z zewnętrznego menedżera usług (np. systemd). Zabbix agent 2 nie ma wbudowanej obsługi demonizacji w systemie Linux.
Agent można uruchomić, wykonując:
systemctl start zabbix-agent2
Aby zatrzymać, uruchomić ponownie lub sprawdzić stan Zabbix agent 2, użyj następujących poleceń:
systemctl stop zabbix-agent2
systemctl restart zabbix-agent2
systemctl status zabbix-agent2
Uruchomienie ręczne
Możesz uruchomić agent Zabbix, lokalizując plik binarny zabbix_agent2 i uruchamiając go bezpośrednio; na przykład:
zabbix_agent2
Agent 2 w systemach Windows
Zabbix agent 2 działa jako samodzielny proces; może jednak również działać jako usługa systemu Windows.
Instalacja
Zabbix agent 2 można zainstalować w systemie Windows, korzystając z jednej z następujących metod:
- Wstępnie skompilowane pliki binarne Zabbix agent - pobierz pakiet instalatora MSI agenta i postępuj zgodnie z instrukcjami na stronie Instalacja agenta Windows z pakietu MSI.
- Źródła Zabbix - pobierz pliki źródłowe i postępuj zgodnie z instrukcjami na stronie Budowanie Zabbix agent 2 w systemie Windows.
Możliwości monitorowania Zabbix agent 2 można rozszerzyć za pomocą ładowalnych wtyczek, które są dostępne oddzielnie. Szczegółowe informacje można znaleźć na stronie Ładowalne wtyczki.
Dodatkowe informacje na temat instalacji Zabbix agent 2 (z archiwum ZIP) jako usługi systemu Windows można znaleźć na stronie Zabbix agent w systemie Microsoft Windows.
Opcje
Następujące parametry wiersza poleceń można używać z agentem Zabbix 2:
| Parameter | Description |
|---|---|
| agent UNIX i Windows | |
-c --config <config-file> |
Ścieżka do pliku konfiguracyjnego. Możesz użyć tej opcji, aby wskazać plik konfiguracyjny inny niż domyślny. |
-f --foreground |
Uruchom agenta Zabbix na pierwszym planie (domyślnie: true). |
-p --print |
Wyświetl znane pozycje i zakończ. Pamiętaj, że aby zwrócić również wyniki user parameter, musisz podać plik konfiguracyjny (jeśli nie znajduje się w domyślnej lokalizacji). |
-t --test <item key> |
Przetestuj określoną pozycję i zakończ. Pamiętaj, że aby zwrócić również wyniki user parameter, musisz podać plik konfiguracyjny (jeśli nie znajduje się w domyślnej lokalizacji). |
-T --test-config |
Sprawdź poprawność pliku konfiguracyjnego i zakończ. |
-h --help |
Wyświetl informacje pomocy i zakończ. |
-v --verbose |
Wyświetl informacje debugowania. Użyj tej opcji razem z opcjami -p i -t. |
-V --version |
Wyświetl wersję agenta i informacje o licencji. |
-R --runtime-control <option> |
Wykonaj funkcje administracyjne. Zobacz runtime control. |
| Tylko agent Windows | |
-m --multiple-agents |
Użyj wielu instancji agenta (z opcjami -i, -d, -s, -x).Aby rozróżnić nazwy usług poszczególnych instancji, każda nazwa usługi będzie zawierać wartość Hostname z określonego pliku konfiguracyjnego. |
-S --startup-type <value> |
Ustaw typ uruchamiania usługi agenta Zabbix dla Windows. Dozwolone wartości:automatic - (domyślnie) uruchamiaj usługę automatycznie podczas startu systemu Windows;delayed - opóźnij uruchomienie usługi do czasu zakończenia startu usług uruchamianych automatycznie;manual - uruchamiaj usługę ręcznie (przez użytkownika lub aplikację);disabled - wyłącz usługę, aby nie mogła zostać uruchomiona przez użytkownika lub aplikację.Możesz użyć tej opcji razem z opcją -i albo osobno, aby zmodyfikować typ uruchamiania już zainstalowanej usługi. |
-i --install |
Zainstaluj agenta Zabbix dla Windows jako usługę. |
-d --uninstall |
Odinstaluj usługę agenta Zabbix dla Windows. |
-s --start |
Uruchom usługę agenta Zabbix dla Windows. |
-x --stop |
Zatrzymaj usługę agenta Zabbix dla Windows. |
Przykłady użycia parametrów wiersza poleceń:
- Wyświetl wszystkie wbudowane pozycje agenta wraz z wartościami.
- Przetestuj user parameter z kluczem
mysql.pingzdefiniowanym w określonym pliku konfiguracyjnym. - Instalowanie usługi Zabbix Agent dla Windows z użyciem domyślnej ścieżki do pliku konfiguracyjnego
C:\\Program Files\\Zabbix Agent 2\\zabbix_agent2.conf. - Modyfikowanie typu uruchamiania zainstalowanej usługi Zabbix Agent dla Windows z użyciem pliku konfiguracyjnego
zabbix_agent2.confznajdującego się w tym samym folderze co plik wykonywalny agenta.
zabbix_agent2 --print
zabbix_agent2 -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf
zabbix_agent2.exe -i
zabbix_agent2.exe -c zabbix_agent2.conf -S delayed
Sterowanie w czasie działania
Sterowanie w czasie działania udostępnia kilka opcji zdalnego sterowania.
| Option | Description |
|---|---|
log_level_increase |
Zwiększa poziom logowania. |
log_level_decrease |
Zmniejsza poziom logowania. |
metrics |
Wyświetla listę dostępnych metryk. |
version |
Wyświetla wersję agent. |
userparameter_reload |
Ponownie wczytuje wartości opcji UserParameter i Include z bieżącego pliku konfiguracyjnego. |
help |
Wyświetla informacje pomocy dotyczące sterowania w czasie działania. |
Przykłady:
- Zwiększenie poziomu logowania dla agent 2.
- Wyświetlenie opcji sterowania w czasie działania.
zabbix_agent2 -R log_level_increase
zabbix_agent2 -R help
Plik konfiguracyjny
Domyślna ścieżka do pliku konfiguracyjnego to:
- W systemach UNIX domyślnie jest to
/usr/local/etc/zabbix_agent2.conflub wartość ustawiona przez zmienne czas kompilacji--sysconfdiralbo--prefix. - W systemie Windows domyślnie jest to
C:\\Program Files\\Zabbix Agent 2\\zabbix_agent2.conf.
Jeśli na host działa jedna instancja agenta, może ona używać domyślnego pliku konfiguracyjnego lub pliku konfiguracyjnego określonego w wierszu poleceń. W przypadku wielu instancji każda instancja agenta musi mieć własny plik konfiguracyjny (jedna z instancji może używać domyślnego pliku konfiguracyjnego).
Parametry konfiguracyjne Zabbix agent 2 w większości odpowiadają parametrom Zabbix agent, z pewnymi wyjątkami:
| Parameters | Description | |
|---|---|---|
| Parametry konfiguracyjne specyficzne dla Zabbix agent 2 | ||
ControlSocket |
Ścieżka do gniazda sterowania w czasie działania. Zabbix agent 2 używa gniazda sterowania do poleceń wykonywanych w czasie działania. | |
EnablePersistentBuffer,PersistentBufferFile,PersistentBufferPeriod |
Te parametry służą do konfiguracji trwałego przechowywania danych w Zabbix agent 2 dla aktywnych pozycji. | |
ForceActiveChecksOnStart |
Określa, czy agent ma wykonywać aktywne sprawdzenia natychmiast po restarcie, czy rozkładać je równomiernie w czasie. | |
Plugins |
Wtyczki mogą mieć własne parametry w formacie Plugins.<Plugin name>.<Parameter>=<value>. Częstym parametrem wtyczki jest System.Capacity, który ustawia limit sprawdzeń możliwych do wykonania jednocześnie. |
|
StatusPort |
Port, na którym Zabbix agent 2 będzie nasłuchiwał żądań HTTP status oraz wyświetlania listy skonfigurowanych wtyczek i niektórych parametrów wewnętrznych. | |
| Parametry konfiguracyjne Zabbix agent, których nie obsługuje Zabbix agent 2 | ||
AllowRoot,User |
Nie są obsługiwane w Zabbix agent 2, ponieważ nie obsługuje on demonizacji. | |
EnableRemoteCommands |
Przestarzałe; zamiast tego w obu agentach używane są parametry AllowKey i DenyKey. |
|
ListenBacklog |
Używany w Zabbix agent do określenia maksymalnej liczby oczekujących połączeń w kolejce TCP. Nie jest obsługiwany w Zabbix agent 2. | |
LoadModule,LoadModulePath |
Moduły ładowane dynamicznie nie są obsługiwane w Zabbix agent 2. | |
MaxLinesPerSecond,LogRemoteCommands |
W Zabbix agent 2 zamiast nich używane są Plugins.Log.MaxLinesPerSecond i Plugins.SystemRun.LogRemoteCommands. |
|
StartAgents |
Ten parametr jest używany w Zabbix agent do zwiększenia współbieżności pasywnych sprawdzeń lub ich wyłączenia. W Zabbix agent 2 współbieżność jest konfigurowana na poziomie wtyczki i może być ograniczona ustawieniem pojemności. Pasywne sprawdzenia są wyłączone w Zabbix Agent 2, jeśli parametr Server nie jest określony. |
|
Więcej informacji można znaleźć w opcjach pliku konfiguracyjnego dla Zabbix agent2.
Kody wyjścia
Zabbix agent 2 może być również skompilowany ze starszymi wersjami OpenSSL (1.0.1, 1.0.2).
W takim przypadku Zabbix udostępnia mutexy do blokowania w OpenSSL.
Jeśli blokada lub odblokowanie mutexa zakończy się niepowodzeniem, komunikat o błędzie zostanie wypisany do standardowego strumienia błędów (STDERR), a Agent 2 zakończy działanie z kodem zwrotnym 2 lub 3, odpowiednio.