10 Пользовательские параметры
Функциональность Zabbix агентов может быть расширена путем добавления пользовательских параметров (параметр конфигурации UserParameter) в файле конфигурации агента. Как только пользовательские параметры определены они могут быть использованы так же, как и любые другие элементы данных агента – по ключу, указанному в параметре.
Пользовательские параметры это команды, которые выполняются Zabbix агентом. В операционных системах UNIX используется интерпретатор командной строки /bin/sh.
Смотрите пошаговое руководство по использованию пользовательских параметров.
1 Простые пользовательские параметры
Для того, чтобы задать новый параметр для мониторинга, должна быть добавлена всего одна строка в файл конфигурации Zabbix агента, после чего агента следует перезапустить.
Пользовательский параметр имеет следующий синтаксис:
UserParameter=ключ,команда
| Параметр | Описание |
|---|---|
| Ключ | Уникальный ключ элемента данных. |
| Команда | Команда, которая будет выполнена для получения значения ключа. |
Пример 1
Простая команда
UserParameter=ping,echo 1
Агент всегда будет возвращать '1' для элемента данных с ключом 'ping'.
Пример 2
Более сложный пример
UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive
Агент будет возвращать '1' если MySQL сервер доступен, '0' – в противном случае.
2 Гибкие пользовательские параметры
Гибкие пользовательские параметры могут быть использованы для большей управляемости и гибкости.
Гибкий пользовательский параметр:
UserParameter=ключ[*],команда
| Параметр | Описание |
|---|---|
| Ключ | Уникальный ключ элемента данных. [*] определяет, что ключ может принимать параметры. |
| Команда | Команда, которая будет выполнена для получения значения ключа. Zabbix агент производит анализ содержимого внутри квадратных скобок [] и заменяет им переменные $1,…,$9 в команде. Переменная $0 будет заменена оригинальной командой (до расширения $0,…,$9) для выполнения. |
Пример 1
Очень простой пример
UserParameter=ping[*],echo $1
Мы можем создать неограниченное количество элементов данных для наблюдения за чем угодно, указав в таком формате ping[что угодно].
-
ping[0] – будет всегда возвращать ‘0’
-
ping[aaa] – будет всегда возвращать ‘aaa’
Пример 2
Давайте добавим больше смысла!
UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive
Этот параметр может быть использован для мониторинга доступности баз данных MySQL. В качестве параметров мы можем передать имя пользователя и пароль. Ключ элемента данных в таком случае выглядит вот так:
mysql.ping[zabbix,our_password]
Пример 3
Сколько строк в файле, которые соответствуют регулярному выражению?
UserParameter=wc[*],grep -c "$2" $1
Этот параметр может быть использован для подсчета количества строк в файле.
wc[/etc/passwd,root] wc[/etc/services,zabbix]
Data source: Zabbix