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:
- 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ś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.