Agent 2

Omówienie

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ść kontroli;
  • Być łatwo rozszerzalna za pomocą pluginów, które zapewniają proste kontrole przy minimalnej ilości kodu oraz obsługują złożone kontrole 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 kontroli 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 także 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.

Zobacz także:

Sprawdzanie pasywne i aktywne

Zabbix agent 2 obsługuje sprawdzanie pasywne i aktywne, podobnie jak Zabbix agent. Dodatkowo aktywne sprawdzanie przez Zabbix agent 2 obsługuje elastyczne interwały i interwały harmonogramu oraz współbieżność sprawdzania w ramach jednego aktywnego serwera.

Domyślnie po ponownym uruchomieniu Zabbix agent 2 zaplanuje pierwsze zbieranie danych dla aktywnego sprawdzania w warunkowo losowym momencie w ramach interwału aktualizacji pozycji, aby zapobiec skokom wykorzystania zasobów. Aby wykonywać aktywne sprawdzanie, które nie ma interwału aktualizacji Scheduling interwału aktualizacji, natychmiast po ponownym uruchomieniu agenta, ustaw parametr ForceActiveChecksOnStart (na poziomie globalnym) lub parametr wtyczki Plugins.<Plugin name>.System.ForceActiveChecksOnStart parametr wtyczki (dotyczy tylko sprawdzania określonych wtyczek) w pliku konfiguracyjnym. Jeśli parametr na poziomie wtyczki 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 znajdują się 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 Linux przy użyciu 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 opcję --enable-agent2.

Możliwości monitorowania Zabbix agent 2 można rozszerzyć za pomocą ładowalnych wtyczek, które są dostępne osobno. Szczegóły 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 być również uruchamiany jako usługa systemu Windows.

Instalacja

Zabbix agent 2 można zainstalować w systemie Windows jedną z następujących metod:

Możliwości monitorowania Zabbix agent 2 można rozszerzyć za pomocą ładowalnych wtyczek, które są dostępne osobno. Szczegóły znajdziesz na stronie Ładowalne wtyczki.

Dodatkowe informacje dotyczące instalacji Zabbix agent 2 (z archiwum ZIP) jako usługi systemu Windows znajdziesz na stronie Zabbix agent w Microsoft Windows.

Opcje

Z agentem Zabbix 2 można używać następujących parametrów wiersza poleceń:

Parametr Opis
agent UNIX i Windows
-c --config <config-file> Ścieżka do pliku konfiguracyjnego.
Tej opcji można użyć do określenia pliku konfiguracyjnego innego niż domyślny.
-f --foreground Uruchomienie agenta Zabbix na pierwszym planie (domyślnie: true).
-p --print Wyświetlenie znanych pozycji i zakończenie działania.
Aby zwrócić również wyniki parametru użytkownika, należy określić plik konfiguracyjny (jeśli nie znajduje się on w domyślnej lokalizacji).
-t --test <item key> Przetestowanie określonej pozycji i zakończenie działania.
Aby zwrócić również wyniki parametru użytkownika, należy określić plik konfiguracyjny (jeśli nie znajduje się on w domyślnej lokalizacji).
-T --test-config Sprawdzenie poprawności pliku konfiguracyjnego i zakończenie działania.
-h --help Wyświetlenie informacji pomocy i zakończenie działania.
-v --verbose Wyświetlenie informacji debugowania. Tej opcji należy używać razem z opcjami -p i -t.
-V --version Wyświetlenie wersji agenta i informacji o licencji.
-R --runtime-control <option> Wykonanie funkcji administracyjnych. Zobacz sterowanie w czasie działania.
Tylko agent Windows
-m --multiple-agents Używanie 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> Ustawienie typu uruchamiania usługi agenta Zabbix dla systemu Windows. Dozwolone wartości:
automatic - (domyślnie) automatyczne uruchamianie usługi podczas uruchamiania systemu Windows;
delayed - opóźnienie uruchomienia usługi do czasu zakończenia uruchamiania usług uruchamianych automatycznie;
manual - ręczne uruchamianie usługi (przez użytkownika lub aplikację);
disabled - wyłączenie usługi, aby nie mogła zostać uruchomiona przez użytkownika ani aplikację.
Tej opcji można używać razem z opcją -i lub osobno, aby zmodyfikować typ uruchamiania już zainstalowanej usługi.
-i --install Zainstalowanie agenta Zabbix dla systemu Windows jako usługi.
-d --uninstall Odinstalowanie usługi agenta Zabbix dla systemu Windows.
-s --start Uruchomienie usługi agenta Zabbix dla systemu Windows.
-x --stop Zatrzymanie usługi agenta Zabbix dla systemu Windows.

Poniżej przedstawiono przykłady użycia parametrów wiersza poleceń:

  • Wyświetlenie wszystkich wbudowanych pozycji agenta wraz z wartościami.
  • Przetestowanie parametru użytkownika z kluczem mysql.ping zdefiniowanym w określonym pliku konfiguracyjnym.
  • Zainstalowanie usługi agenta Zabbix dla systemu Windows przy użyciu domyślnej ścieżki do pliku konfiguracyjnego.
  • Zmodyfikowanie typu uruchamiania zainstalowanej usługi agenta Zabbix dla systemu Windows przy użyciu pliku konfiguracyjnego znajdującego się w tym samym folderze co plik wykonywalny agenta.
zabbix_agent2 --print
zabbix_agent2 -t "mysql.ping" -c /etc/zabbix/zabbix_agent2.conf
zabbix_agent2.exe -i
zabbix_agent2.exe -c zabbix_agent2.conf -S delayed
Kontrola w czasie działania

Kontrola w czasie działania udostępnia opcje zdalnego sterowania.

Option Description
log_level_increase Zwiększenie poziomu rejestrowania.
log_level_decrease Zmniejszenie poziomu rejestrowania.
metrics Wyświetlenie listy dostępnych metryk.
version Wyświetlenie wersji agenta.
userparameter_reload Ponowne wczytanie wartości opcji UserParameter i Include z bieżącego pliku konfiguracyjnego.
help Wyświetlenie informacji pomocy dotyczących kontroli w czasie działania.

Przykłady:

  • Zwiększenie poziomu rejestrowania dla agenta 2.
  • Wyświetlenie opcji kontroli w czasie działania.
zabbix_agent2 -R log_level_increase
zabbix_agent2 -R help

Plik konfiguracyjny

Domyślna ścieżka do pliku konfiguracyjnego zależy od systemu operacyjnego i metody instalacji Zabbix:

  • W systemie UNIX domyślnie jest to:
    • W przypadku instalacji ze źródeł: /usr/local/etc/zabbix_agent2.conf lub, zgodnie z ustawionymi podczas kompilacji zmiennymi --sysconfdir albo --prefix.
    • W przypadku instalacji z pakietów: /etc/zabbix/zabbix_agent2.conf.
  • W systemie Windows domyślnie jest to C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf.

Jeśli na hoście działa pojedyncza 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 gniazda sterującego w czasie działania. Zabbix agent 2 używa gniazda sterującego do poleceń w czasie działania.
EnablePersistentBuffer,
PersistentBufferFile,
PersistentBufferPeriod
Te parametry służą do konfiguracji trwałego przechowywania 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ń wykonywanych jednocześnie.
StatusPort Port, na którym Zabbix agent 2 będzie nasłuchiwać żądań HTTP dotyczących statusu oraz wyświetlania listy skonfigurowanych wtyczek i niektórych parametrów wewnętrznych.
Parametry konfiguracyjne specyficzne dla Zabbix agent, nieobsługiwane w Zabbix agent 2
AllowRoot,
User
Nieobsł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 definiowania maksymalnej liczby oczekujących połączeń w kolejce TCP. Nieobsługiwane w Zabbix agent 2.
LoadModule,
LoadModulePath
Moduły ładowane nie są obsługiwane w Zabbix agent 2.
MaxLinesPerSecond,
LogRemoteCommands
W Zabbix agent 2 zamiast tego używane są Plugins.Log.MaxLinesPerSecond i Plugins.SystemRun.LogRemoteCommands.
StartAgents Ten parametr jest używany w Zabbix agent do zwiększania współbieżności pasywnych sprawdzeń lub ich wyłączania. 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 operacja zablokowania lub odblokowania mutexa zakończy się niepowodzeniem, komunikat o błędzie jest wypisywany do standardowego strumienia błędów (STDERR), a Agent 2 kończy działanie z kodem zwrotnym 2 lub 3, odpowiednio.