5 Parametry użytkownika

Omówienie

Czasami możesz chcieć uruchomić sprawdzenie agent, które nie jest predefiniowane w Zabbix. W tym miejscu 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, który będzie łatwy do odwołania (musi być unikalny w obrębie host).

Uruchom ponownie agent lub użyj opcji runtime control agenta, aby uwzględnić 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. [*] oznacza, że ten klucz akceptuje parametry umieszczone w nawiasach.
Parametry podaje się 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 wskazać odpowiedni parametr w kluczu pozycji.
Zabbix analizuje parametry ujęte w [ ] klucza pozycji i odpowiednio podstawia w poleceniu $1,...,$9.
$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 zostanie podczas wykonywania polecenia zamienione na $2.

Odwołania pozycyjne ze znakiem $ są wyszukiwane i zastępowane przez agent Zabbix tylko dla elastycznych parametrów użytkownika. W przypadku 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ść 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 wyjścia standardowego 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.