5 Parametry użytkownika

Omówienie

Czasami możesz chcieć uruchomić sprawdzenie agent, które nie jest predefiniowane w Zabbix. W tym właśnie pomagają parametry użytkownika.

Możesz napisać polecenie, które pobiera potrzebne dane, i umieścić je w parametrze użytkownika w pliku konfiguracyjnym agent (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, który będzie łatwy do odwołania się do niego (musi być unikalny w obrębie host).

Uruchom ponownie agent lub użyj opcji runtime control agent, aby zastosować 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żna zwrócić do 16 MB danych.

/bin/sh jest używany jako interpreter wiersza poleceń w systemach operacyjnych UNIX. Parametry użytkownika podlegają limitowi czasu sprawdzenia agent; jeśli limit czasu zostanie osiągnięty, proces parametru użytkownika uruchomiony przez fork 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 z kluczem. W ten sposób elastyczny parametr użytkownika może stanowić podstawę do tworzenia kilku pozycji.

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

UserParameter=key[*],command
Parameter Description
Key Unikalny klucz pozycji. [*] określa, że ten klucz akceptuje parametry umieszczone w nawiasach.
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:
Możesz używać odwołań pozycyjnych $1…$9 w poleceniu, 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, podaj podwójny znak dolara - na przykład awk '{print $$2}'. W takim przypadku $$2 zostanie faktycznie zamienione na $2 podczas wykonywania polecenia.

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

Niektóre znaki nie są domyślnie 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.