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 pomocne są parametry użytkownika.

Możesz napisać polecenie, które pobiera potrzebne dane, i uwzględnić je w parametrze użytkownika w pliku konfiguracji agenta (parametr konfiguracji '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ść zwracana przez polecenie to standardowe wyjście wraz ze standardowym wyjściem błędów wygenerowanym przez polecenie.

Pozycja, która zwraca tekst (informacje typu character, log lub text), nie stanie się nieobsługiwana w przypadku standardowego wyjścia błędów.

Wartość zwracana jest ograniczona do 16 MB (w tym końcowe białe znaki, które są obcinane); obowiązują również limity bazy danych.

Parametry użytkownika, które zwracają tekst (informacje typu character, log lub text), mogą również zwracać biały znak. W przypadku nieprawidłowego wyniku pozycja stanie się nieobsługiwana.