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ę:
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.
Prosta komenda:
Agent zawsze zwróci '1' dla pozycji z kluczem 'ping'.
Bardziej złożony przykład:
Agent zwróci '1', jeżeli serwer MySQL działa, '0' - w przeciwnym przypadku.
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ę:
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.
Coś bardzo prostego:
Można zdefiniować nieograniczoną ilość pozycji monitorowania wg. wzorca ping[coś].
Niech to coś znaczy!
Można użyć parametrów do monitorowania dostępności bazy danych MySQL. Możemy przekazać nazwę i hasło użytkownika:
Ile linii w pliku jest zgodnych z wyrażeniem regularnym?
Parametr ten może być użyty do liczenia linii w pliku.