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:
- Porównanie agent i agent 2
- Parametry konfiguracji: Zabbix agent 2
- Parametry konfiguracji: Zabbix agent 2 (Windows)
- Parametry konfiguracji: Pluginy
- Protokół pluginu Zabbix agent 2
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:
- Wstępnie skompilowane binaria Zabbix agent - pobierz pakiet instalacyjny MSI agent i postępuj zgodnie z instrukcjami na stronie Instalacja agenta Windows z pliku MSI;
- Źródła Zabbix - pobierz pliki źródłowe i postępuj zgodnie z instrukcjami na stronie Kompilacja 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 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.pingzdefiniowanym 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
Sterowanie w czasie działania
Sterowanie 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. |
periodic_prof_enable |
Włączenie profilowania okresowego. Wszystkie metryki zbierają dane w danym momencie i zapisują je, z wyjątkiem danych procesora. Okresowe dane procesora są zbierane w czasie do ukrytego pliku tymczasowego. Po zakończeniu interwału plik jest publikowany jako profil procesora, a skonfigurowana liczba ukończonych plików jest zachowywana. Plik tymczasowy nie jest uwzględniany w wartości ProfilerMaxFilesPerProfile. |
periodic_prof_disable |
Wyłączenie profilowania okresowego. |
periodic_prof_execute |
Zapisanie profili po 5-sekundowym próbkowaniu. Gdy profilowanie okresowe jest włączone, to polecenie kończy bieżący interwał procesora, zapisuje osobny 5-sekundowy profil procesora i rozpoczyna nowy okresowy plik procesora. Profile jawnie żądane są rotowane zgodnie z wartością ProfilerMaxFilesPerProfile po zakończeniu polecenia.Podczas zbierania profili przez to polecenie wszystkie polecenia profilera w czasie działania są odrzucane z komunikatem „profiler is busy”. |
periodic_prof_set_interval |
Ustawienie interwału profilowania. |
version |
Wyświetlenie wersji agent. |
userparameter_reload |
Ponowne wczytanie wartości opcji UserParameter i Include z bieżącego pliku konfiguracyjnego. |
help |
Wyświetlenie informacji pomocy dotyczących sterowania w czasie działania. |
Przykłady:
- Zwiększenie poziomu rejestrowania 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 zależy od systemu operacyjnego i metody instalacji Zabbix:
- W systemie UNIX domyślna ścieżka to:
- W przypadku instalacji ze źródeł:
/usr/local/etc/zabbix_agent2.conflub ścieżka określona przez zmienne czasu kompilacji--sysconfdirlub--prefix. - W przypadku instalacji z pakietów:
/etc/zabbix/zabbix_agent2.conf.
- W przypadku instalacji ze źródeł:
- W systemie Windows domyślna ścieżka 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 agenta Zabbix 2 są w większości zgodne z parametrami agenta Zabbix, z pewnymi wyjątkami:
| Parametry | Opis | |
|---|---|---|
| Parametry konfiguracyjne specyficzne dla agenta Zabbix 2 | ||
ControlSocket |
Ścieżka do gniazda sterowania w czasie działania. Agent Zabbix 2 używa gniazda sterowania do wykonywania poleceń w czasie działania. | |
EnablePersistentBuffer,PersistentBufferFile,PersistentBufferPeriod |
Parametry te służą do konfigurowania trwałego przechowywania danych w agencie Zabbix 2 dla aktywnych pozycji. | |
ForceActiveChecksOnStart |
Określa, czy agent powinien wykonywać aktywne sprawdzenia natychmiast po ponownym uruchomieniu, czy rozłożyć je równomiernie w czasie. | |
Plugins |
Wtyczki mogą mieć własne parametry w formacie Plugins.<Plugin name>.<Parameter>=<value>. Typowym parametrem wtyczki jest System.Capacity, który określa limit sprawdzeń wykonywanych jednocześnie. |
|
StatusPort |
Port, na którym agent Zabbix 2 będzie nasłuchiwać żądań stanu HTTP oraz wyświetlać listę skonfigurowanych wtyczek i niektórych parametrów wewnętrznych. | |
| Parametry konfiguracyjne agenta Zabbix, które nie są obsługiwane przez agenta Zabbix 2 | ||
AllowRoot,User |
Nie są obsługiwane przez agenta Zabbix 2, ponieważ nie obsługuje on działania jako demon. | |
EnableRemoteCommands |
Przestarzały; w obu agentach zamiast niego używane są parametry AllowKey, AllowKeyRegexp, DenyKey i DenyKeyRegexp. |
|
ListenBacklog |
W agencie Zabbix służy do określania maksymalnej liczby oczekujących połączeń w kolejce TCP. Nie jest obsługiwany przez agenta Zabbix 2. | |
LoadModule,LoadModulePath |
Moduły ładowalne nie są obsługiwane przez agenta Zabbix 2. | |
MaxLinesPerSecond,LogRemoteCommands |
W agencie Zabbix 2 zamiast nich używane są Plugins.Log.MaxLinesPerSecond i Plugins.SystemRun.LogRemoteCommands. |
|
StartAgents |
Parametr ten jest używany w agencie Zabbix do zwiększania współbieżności pasywnych sprawdzeń lub ich wyłączania. W agencie Zabbix 2 współbieżność jest konfigurowana na poziomie wtyczki i może być ograniczana ustawieniem pojemności. Pasywne sprawdzenia są wyłączone w agencie Zabbix 2, jeśli parametr Server nie został określony. |
|
Więcej informacji można znaleźć w opcjach pliku konfiguracyjnego dla agenta Zabbix 2.
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.