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