5 Parametry użytkownika

Przegląd

Czasami możesz chcieć uruchomić sprawdzenie agenta, które nie jest wstępnie zdefiniowane w Zabbix. W takich przypadkach z pomocą przychodzą parametry użytkownika.

Możesz napisać polecenie, które pobiera potrzebne dane, i umieścić je w parametrze użytkownika w pliku konfiguracyjnym agenta (parametr konfiguracyjny 'UserParameter').

Parametr użytkownika ma następującą składnię:

UserParameter=<key>,<command>

Jak widać, parametr użytkownika zawiera również klucz. Klucz będzie potrzebny podczas konfigurowania pozycji. Wprowadź wybrany przez siebie klucz, do którego łatwo będzie się odwołać (musi być unikalny w obrębie hosta).

Uruchom ponownie agent lub użyj opcji kontroli w czasie wykonywania agenta, aby wczytać nowy parametr, np.:

zabbix_agentd -R userparameter_reload

Następnie podczas konfigurowania pozycji wprowadź klucz, aby odwołać się do polecenia z parametru użytkownika, które ma zostać wykonane.

Parametry użytkownika to polecenia wykonywane przez agent Zabbix. Należy pamiętać, że przed etapami wstępnego przetwarzania wartości pozycji może zostać zwrócone do 16 MB danych.

W systemach operacyjnych UNIX jako interpreter wiersza poleceń używany jest /bin/sh. Parametry użytkownika podlegają limitowi czasu sprawdzenia agenta; jeśli limit czasu zostanie osiągnięty, rozwidlony proces parametru użytkownika zostanie zakończony.

Zobacz także:

Przykłady prostych parametrów użytkownika

Proste polecenie:

UserParameter=ping,echo 1

agent będzie zawsze zwracał '1' dla pozycji z kluczem 'ping'.

Bardziej złożony przykład:

UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive

agent zwróci '1', jeśli serwer MySQL działa, w przeciwnym razie '0'.

Elastyczne parametry użytkownika

Elastyczne parametry użytkownika akceptują parametry wraz z kluczem. Dzięki temu elastyczny parametr użytkownika może stanowić podstawę do utworzenia kilku pozycji.

Elastyczne parametry użytkownika mają następującą składnię:

UserParameter=key[*],command
Parametr Opis
Key Unikalny klucz pozycji. [*] określa, że ten klucz akceptuje parametry w nawiasach kwadratowych.
Parametry są podawane podczas konfigurowania pozycji.
Command Polecenie, które ma zostać wykonane w celu obliczenia wartości klucza.
Tylko dla elastycznych parametrów użytkownika:
W poleceniu można używać odwołań pozycyjnych $1…$9, aby odwołać się do odpowiedniego parametru w kluczu pozycji.
Zabbix analizuje parametry ujęte w [ ] klucza pozycji i odpowiednio podstawia $1,...,$9 w poleceniu.
$0 zostanie zastąpione oryginalnym poleceniem (przed rozwinięciem $0,...,$9), które ma zostać uruchomione.
Odwołania pozycyjne są interpretowane niezależnie od tego, czy są ujęte w podwójne (") czy pojedyncze (') cudzysłowy.
Aby użyć odwołań pozycyjnych bez zmian, należy podać podwójny znak dolara — na przykład awk '{print $$2}'. W takim przypadku $$2 podczas wykonywania polecenia faktycznie zostanie zamienione na $2.

Odwołania pozycyjne ze znakiem $ są wyszukiwane i zastępowane przez Zabbix agent tylko dla elastycznych parametrów użytkownika. Dla prostych parametrów użytkownika takie przetwarzanie odwołań jest pomijane i dlatego żadne cytowanie znaku $ nie jest konieczne.

Niektóre znaki domyślnie nie są dozwolone w parametrach użytkownika. Pełną listę znaków można znaleźć w UnsafeUserParameters.

Przykład 1

Coś bardzo prostego:

UserParameter=ping[*],echo $1

Możemy zdefiniować nieograniczoną liczbę pozycji do monitorowania, wszystkie w formacie ping[coś].

  • ping[0] - zawsze zwróci '0'
  • ping[aaa] - zawsze zwróci 'aaa'
Przykład 2

Dodajmy więcej sensu!

UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive

Ten parametr może być używany do monitorowania dostępności bazy danych MySQL. Możemy przekazać nazwę użytkownika i hasło:

mysql.ping[zabbix,our_password]
Przykład 3

Ile linii w pliku pasuje do wyrażenia regularnego?

UserParameter=wc[*],grep -c "$2" $1

Ten parametr może być używany do obliczania liczby linii w pliku.

wc[/etc/passwd,root]
wc[/etc/services,zabbix]

Wynik polecenia

Wartością zwracaną przez polecenie jest standardowe wyjście wraz ze standardowym wyjściem błędów wygenerowanym przez polecenie.

Pozycja zwracająca tekst (informacje typu znakowego, log lub tekstowego) nie stanie się nieobsługiwana w przypadku standardowego wyjścia błędów.

Wartość zwracana jest ograniczona do 16 MB (włącznie z końcowymi białymi znakami, które są obcinane); obowiązują również ograniczenia bazy danych.

Parametry użytkownika zwracające tekst (informacje typu znakowego, log lub tekstowego) mogą również zwracać białe znaki. W przypadku nieprawidłowego wyniku pozycja stanie się nieobsługiwana.