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.
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 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. |
$$2
zostanie zamienione na $2
podczas wykonywania komendy.Coś bardzo prostego:
UserParameter=ping[*],echo $1
Można zdefiniować nieograniczoną ilość pozycji monitorowania wg. wzorca ping[coś].
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]
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]