Zabbix Documentation 2.2

3.04.04.24.4 (current)| In development:5.0 (devel)| Unsupported:1.82.02.22.43.23.4Guidelines

User Tools

Site Tools


ru:manual:config:items:userparameters

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ru:manual:config:items:userparameters [2018/06/13 05:17]
ru:manual:config:items:userparameters [2018/03/07 22:38] (current)
dotneft
Line 1: Line 1:
 +==== - #4 Пользовательские параметры ====
  
 +=== Обзор ===
 +
 +Иногда вы можете захотеть выполнять проверку через агент, которая не предопределена в Zabbix. В этом случае вам на помощь придут пользовательские параметры.
 +
 +Вы можете написать команду,​ которая вернет необходимые вам данные и добавить эту команду как пользовательский параметр в [[:​ru:​manual:​appendix:​config:​zabbix_agentd|файл конфигурации агента]] (параметр конфигурации '​UserParameter'​).
 +
 +Пользовательский параметр имеет следующий синтаксис:​
 +
 +  UserParameter=<​ключ>,<​команда>​
 +
 +Как вы можете видеть,​ пользовательский параметр также содержит ключ. Ключ ​ потребуется при настройке элемента данных. Введите ключ на ваш выбор, на который будет легко ссылаться (он должен быть уникальным в пределах узла сети). Перезапустите агента.
 +
 +Затем, когда [[item|настроите элемент данных]],​ введите ключ на который ссылается команда из пользовательского параметра,​ которую вы хотите выполнять.
 +
 +Команды из пользовательских параметров выполняются Zabbix агентом. Может быть возвращено до 512КБ данных. Однако следует отметить,​ что текстовое значение,​ которое может в конечном итоге записано в базу данных ограничено 64КБ в MySQL (по остальным базам данных смотрите информацию в [[:​ru/​manual/​config/​notifications/​action/​operation/​remote_command#​обзор|таблице]]).
 +
 +Возвращаемым значением команды является стандартный вывод; стандартный вывод ошибок отбрасывается. В операционных системах UNIX используется интерпретатор командной строки **/​bin/​sh**. Пользовательские параметры подчиняются времени ожидания проверок на агента;​ если время ожидания будет превышено,​ созданный по пользовательским параметрам процесс будет завершен.
 +
 +Смотрите также:
 +
 +  * [[ru:​manual:​config:​items:​userparameters:​extending_agent|Пошаговую инструкцию]] по использованию пользовательских параметров.
 +  * [[ru/​manual/​appendix/​command_execution|Выполнение команд]]
 +
 +== Примеры простых пользовательских параметров ==
 +
 +Простая команда:​
 +
 +  UserParameter=ping,​echo 1
 +
 +Агент будет всегда возвращать '​1'​ для элемента данных с ключем '​ping'​.
 +
 +Более сложный пример:​
 +
 +  UserParameter=mysql.ping,​mysqladmin -uroot ping|grep -c alive
 +
 +Агент будет возвращать '​1',​ если MySQL сервер доступен,​ '​0'​ - в противном случае.
 +
 +=== Гибкие пользовательские параметры ===
 +
 +Гибкие пользовательские параметры допускают параметры с указанным ключем. В этом случае гибкие пользовательские параметры могут быть основой для создания нескольких элементов данных.
 +
 +Гибкие пользовательские параметры имеют следующий синтаксис:​
 +
 +  UserParameter=ключ[*],​команда
 +
 +^Параметр^Описание^
 +|**Ключ**|Уникальный ключ элемента данных. [*] задает,​ что ключ может принимать параметры из скобок. Параметры указываются при настройке элемента данных. |
 +|**Команда**|Команда,​ которая выполняется для получения значения ключа.\\ //​Только для гибких пользовательских параметров//:​\\ Вы можете использовать ссылки на позиации $1…$9 в команде,​ для того чтобы обратиться к соответствующему параметру в ключе элемента данных.\\ Zabbix разбирает параметры заключенные в [ ] ключа элемента данных и заменяет $1,...,$9 в команде соответственно.\\ $0 будет заменена оригинальной командой (до раскрытия $0,…,$9) для выполнения.\\ Ссылки на позиции со знака $ интерпретируются независимо от того заключены ли они в двойные (") или одинарные (') кавычки.\\ Для использования ссылок на позиции без изменения,​ укажите двойной символ доллара - например,​ awk '​{print $$2}'. В этом случае ''​$$2''​ фактически превратится в ''​$2''​ при выполнении команды. ​ |
 +
 +<note important>​Ссылки на позиции со знака $ ищутся и заменяются Zabbix агентом только с гибкими пользовательскими параметрами. В случае с простыми пользовательскими параметрами подобная обработка ссылок опускается и, поэтому,​ никакое экранирование символа $ не требуется.</​note>​
 +
 +<note important>​Если опция [[ru:​manual:​appendix:​config:​zabbix_agentd|UnsafeUserParameters]] активирована в файле конфигурации Zabbix агента,​ то в командах недопустимы следующие символы:​ \ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @. Также, в дополнение к этому, новые строки не разрешены.</​note>​
 +
 +<​note>​Пользовательские параметры которые возвращают текст (символ,​ журнал,​ текстовые типы информации) теперь могут возвращать только пробел,​ при этом полученное значение становится пустой строкой (поддерживается начиная с 2.0). Если командой возвращено несоответствующее требованиям значение,​ тогда агент отправляет сообщение ZBX_NOTSUPPORTED.</​note>​
 +
 +== Пример 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]
 +
 +=== Результат команды ===
 +