Zabbix Documentation 2.0

2.23.04.04.2 (current)In development:4.4 (devel)Unsupported:1.82.02.43.23.4

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 [2014/12/30 17:23] (current)
dotneft [Гибкие пользовательские параметры]
Line 1: Line 1:
 +==== - #4 Пользовательские параметры ====
  
 +=== Обзор ===
 +
 +Иногда вы можете захотеть выполнять проверку через агент, которая не предопределена в Zabbix. Здесь на помощь придут пользовательские параметры.
 +
 +Вы можете написать команду,​ которая вернет необходимые вам данные и добавить эту команду как пользовательский параметр в [[ru:​manual:​appendix:​config:​zabbix_agentd|файл конфигурации агента]] (параметр конфигурации '​UserParameter'​).
 +
 +Пользовательский параметр имеет следующий синтаксис:​
 +
 +  UserParameter=<​ключ>,<​команда>​
 +
 +Как вы можете видеть,​ пользовательский параметр также содержит ключ. Ключ будет необходим при настройке элемента данных. Укажите ключ на ваш выбор, на который будет легко ссылать (он должен быть уникальным в пределах узла сети). Перезапустите агента.
 +
 +Затем, когда [[item|настроите элемент данных]],​ укажите ключ на который ссылается команда из пользовательского параметры,​ которую вы хотите выполнять.
 +
 +Команды из пользовательских параметров выполняются Zabbix агентом. Может быть возвращено до 512КБ (64КБ до Zabbix 2.0.5). В операционных системах UNIX используется интерпретатор командной строки **/​bin/​sh**. Таким образом,​ вы можете повысить функциональность Zabbix агентов.
 +
 +Смотрите [[ru:​manual:​config:​items:​userparameters:​extending_agent|пошаговую инструкцию]] по использованию пользовательских параметров.
 +
 +== Примеры простых пользовательских параметров ==
 +
 +Простая команда:​
 +
 +  UserParameter=ping,​echo 1
 +
 +Агент будет всегда возвращать '​1'​ для элемента данных с ключем '​ping'​.
 +
 +Более сложный пример:​
 +
 +  UserParameter=mysql.ping,​mysqladmin -uroot ping|grep -c alive
 +
 +Агент будет возвращать '​1',​ если MySQL сервер доступен,​ '​0'​ - в противном случае.
 +
 +=== Гибкие пользовательские параметры ===
 +
 +Flexible user parameters accept parameters with the key. This way a flexible user parameter can be the basis for creating several items.
 +
 +Flexible user parameters have the following syntax:
 +
 +  UserParameter=ключ[*],​команда
 +
 +^Параметр^Описание^
 +|**Ключ**|Уникальный ключ элемента данных. [*] задает,​ что ключ может принимать параметры из скобок.|
 +|**Команда**|Команда,​ которая будет выполнена для получения значения ключа.\\ Zabbix агент производит анализ содержимого внутри квадратных скобок [] и заменяет им переменные $1,…,$9 в команде.\\ Переменная $0 будет заменена оригинальной командой (до расширения $0,…,$9) для выполнения.|
 + 
 +<note tip>​Для использования ссылок на позиции не измененными,​ укажите двойной символ доллара - например,​ awk '​{print $$2}'​.</​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]