This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

4 Parametry użytkownika

Przegląd

Czasami możemy chcieć uruchomić sprawdzenia agenta, które nie zostały przygotowane w Zabbix. W takim przypadku pomocne są parametry użytkownika.

Można napisać swoją komendę, która pobierze potrzebne i umieścić ją w parametrach użytkownika w pliku konfiguracyjnego agenta (parametr konfiguracyjny 'UserParameter').

Parametr użytkownika ma następującą składnię:

UserParameter=<klucz>,<komenda>

Jak można zauważyć, parametr użytkownika zawiera również klucz. Klucz będzie potrzebny podczas konfiguracji pozycji. Klucz powinien być łatwo rozpoznawalny (musi być unikalny w obrębie hosta). Zrestartuj agenta.

Następnie, podczas konfiguracji pozycji, należy wprowadzić klucz, wskazujący na komendę z parametru użytkownika, którą chcemy wykonać.

Parametry użytkownika to komendy wykonywane przez agenta Zabbix. Mogą zwracać maksymalnie do 512KB danych. W systemach operacyjnych UNIX używany jest interpreter komend /bin/sh. W ten sposób można rozszerzyć funkcjonalność agentów Zabbix.

W podręczniku krok po kroku można zobaczyć jak używać parametrów użytkownika.

Przykłady prostych parametrów użytkownika

Prosta komenda:

UserParameter=ping,echo 1

Agent zawsze zwróci '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żeli serwer MySQL działa, '0' - w przeciwnym przypadku.

Elastyczne parametry użytkownika

Elastyczne parametry użytkownika akceptują parametry w kluczu. Dzięki temu elastyczny parametr użytkownika może się stać podstawą do utworzenia kilku pozycji.

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

UserParameter=klucz[*],komenda
Parametr Opis
Klucz Unikalny klucz pozycji. [*] oznacza, że klucz akceptuje parametry wewnątrz nawiasów kwadratowych.
Parametry podawane są podczas konfiguracji pozycji.
Komenda Komenda, którą należy wykonać, by otrzymać wartość dla klucza.
Należy użyć referencji pozycyjnej $1...$9, aby wskazać odpowiedni parametr z klucza pozycji.
Zabbix parsuje parametry zawarte w [ ] za kluczem pozycji i podstawia je odpowiednio do $1,...,$9.
$0 zostanie zamienione na komendę (przed ekspansją $0,...,$9) do uruchomienia.

Żeby użyć niezmienionej referencji pozycyjnej, należy podać dwa znaki dolara - na przykład, awk '{print $$2}'. W tym przypadku $$2 zostanie zamienione na $2 podczas wykonywania komendy.

Należy zauważyć, że pozycyjne referencje ze znakiem $ są interpretowane przez agenta Zabbix niezależnie od tego czy są zamknięte w cudzysłowach (") czy też w myślnikach (').

Jeżeli opcja konfiguracji demona agenta UnsafeUserParameters jest wyłączona, nie można przekazywać elastycznych parametrów zawierających te symbole: \ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @. Dodatkowo, znak nowej linii nie jest dozwolony.

Parametry użytkownika, które zwracają tekst (typy informacji: ciągi znaków, logi, teksty) w chwili obecnej mogą zwracać również same białe znaki, co powoduje ustawienie zwracanej wartości na pustą (począwszy od 2.0). Jeżeli zwracana wartość jest nieprawidłowa, agent wyśle ZBX_NOTSUPPORTED.

Przykład 1

Coś bardzo prostego:

UserParameter=ping[*],echo $1

Można zdefiniować nieograniczoną ilość pozycji monitorowania wg. wzorca ping[coś].

  • ping[0] - zawsze zwróci '0'
  • ping[aaa] - zawsze zwróci 'aaa'
Przykład 2

Niech to coś znaczy!

UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive

Można użyć parametrów do monitorowania dostępności bazy danych MySQL. Możemy przekazać nazwę i hasło użytkownika:

mysql.ping[zabbix,nasze_hasło]
Przykład 3

Ile linii w pliku jest zgodnych z wyrażeniem regularnym?

UserParameter=wc[*],grep -c "$2" $1

Parametr ten może być użyty do liczenia linii w pliku.

wc[/etc/passwd,root]
       wc[/etc/services,zabbix]