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:
- Samouczek krok po kroku dotyczący korzystania z parametrów użytkownika
- Wykonywanie poleceń
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.