Zabbix Documentation 4.4

3.04.04.45.0 (current)| In development:5.2 (devel)| Unsupported:1.82.02.22.43.23.44.2Guidelines

User Tools

Site Tools


ru:manual:config:items:item

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Previous revision
ru:manual:config:items:item [2018/07/01 14:16]
ru:manual:config:items:item [2019/12/30 05:11] (current)
dotneft
Line 1: Line 1:
 +==== 1 Создание элемента данных ====
  
 +=== Обзор ===
 +
 +Для создания элемента данных в веб-интерфейсе Zabbix, выполните следующее:​
 +
 +  * Перейдите в: //​Настройка//​ -> //Узлы сети// ​
 +  * Нажмите на //​Элементы данных//​ в строке с узлом сети
 +  * Нажмите на //​Создать элемент данных//​ в правом верхнем углу экрана
 +  * В диалоге введите параметры элемента данных
 +
 +Вы также можете создать элемент данных,​ открыв уже существующий элемент данных,​ после чего нажать на кнопку //​Клонировать//​ и затем сохранить под другим именем.
 +
 +=== Настройка ===
 +
 +Вкладка **Элемент данных** содержит следующие атрибуты элементов данных.\\
 +
 +{{manual:​config:​item1.png?​600|}}
 +
 +Все обязательные поля ввода отмечены красной звёздочкой.
 +
 +^Параметр^Описание^
 +|//​Имя// ​ |Имя элемента данных.\\ //​Обратите внимание//,​ что использование макросов позиций (**$1, $2...$9** - ссылающихся на первый,​ второй... девятый параметры ключа элемента данных) теперь устарело.\\ Например:​ Свободно дискового пространства в $1\\ Если ключ элемента данных %%"​%%vfs.fs.size[/,​free]%%"​%%,​ описание автоматически изменится на %%"​%%Свободно дискового пространства в /%%"%% |
 +|//​Тип// ​ |Тип элемента данных. Смотрите отдельные разделы по [[itemtypes|типам элементов данных]].|
 +|//​Ключ// ​ |Ключ элемента данных (до 256 символов).\\ Поддерживаемые [[itemtypes|ключи элементов данных]] описаны в отдельных разделах по типам элементов данных.\\ Ключ должен быть уникальным в пределах одного узла сети.\\ Если тип ключа '​Zabbix агент',​ '​Zabbix агент (активный)',​ '​Простая проверка'​ или '​Zabbix агрегированный',​ то значение ключа должно поддерживаться Zabbix агентом или Zabbix сервером.\\ Смотрите также: корректный [[ru:​manual:​config:​items:​item:​key|формат ключа]]. ​ |
 +|//​Интерфейс узла сети// |Выбор интерфейса узла сети. Это поле доступно при изменении элемента данных на уровне узла сети. |
 +|//Тип информации// ​ |Тип хранения данных в базе данных после всех преобразований,​ если таковые имеются.\\ **Числовой (целое положительное)** - целое 64битное число\\ **Числовой (с плавающей точкой)** - число с плавающей точкой\\ Отрицательные значения могут храниться.\\ Допустимые значения -999999999999.9999 до 999999999999.9999. \\ Начиная с Zabbix 2.2, также поддерживается получение значений в научном представлении. Например,​ 1e+7, 1e-4.\\ **Символ** - короткие текстовые данные\\ **Журнал** - длинные текстовые данные с необязательными свойствами для журналов (штамп времени,​ источник,​ важность,​ logeventid).\\ **Текст** - длинные текстовые данные. Смотрите также [[#​Ограничения_текстовых_данных|ограничения по текстовым данных]]. |
 +|//​Единица измерения// ​ |Если указан символ единицы измерения,​ Zabbix добавит пост обработку полученного значения и отобразит его с заданным постфиксом единицы измерения.\\ По умолчанию,​ если исходное значение превышает 1000, оно делится на 1000 и так отображается. Например,​ если вы задали //bps// и полученное значение равно 881764, оно будет отображено как 881.76 Kbps. \\ Для единиц измерения **B** (байт), **Bps** (байты в секунду) используется специальная обработка,​ при которой значение делится на 1024. Таким образом,​ если единица измерения указана как **B** или **Bps**, Zabbix будет отображать:​\\ 1 как 1B/1Bps\\ 1024 как 1KB/1KBps\\ 1536 как 1.5KB/​1.5KBps\\ Специальная обработка используется и для следующих единиц измерения связанных со временем:​\\ **unixtime** - переводится в "​гггг.мм.дд чч:​мм:​сс"​. Для корректного перевода,​ возвращаемое значение должно быть с типом данных //​Числовой (целое положительное)//​.\\ **uptime** - переводится в "​чч:​мм:​сс"​ или в "N дней, чч:​мм:​сс"​\\ Например,​ если вы получили значение равное 881764 (секунд),​ оно отобразится как "10 дней, 04:​56:​04"​\\ **s** - переводится в "​ггг ммм ддд ччч ммм ссс мс"; параметр рассматривается как количество секунд.\\ Например,​ если вы получили значение равное 881764 (секунд),​ оно будет отображаться как "10д 4ч 56м"​\\ Отображаются только 3 верхних основы,​ такие как "1м 15д 5ч" или "2ч 4м 46с". В случае,​ если нет дней, то тогда отображаются только два уровня - "1м 5ч" (минуты,​ секунды или миллисекунды не будут отображаться). Будет переведено в "< 1 ms", если значение меньше чем 0.001.\\ //​Обратите внимание//,​ что если единица измерения представлена с ''​!''​ префиксом,​ тогда к значениям элементов данных префиксы/​обработка единиц измерения применяться не будут. Смотрите [[#​чёрный_список_единиц_измерения|чёрный список единиц измерения]].|
 +|//​Интервал обновления// ​ |Получение нового значения по этому элементу данных каждые N секунд. Максимально допустимый интервал обновления - 86400 секунд (1 день).\\ Поддерживаются [[:​ru/​manual/​appendix/​suffixes|функции времени]],​ например,​ 30s, 1m, 2h, 1d.\\ Поддерживаются [[:​ru/​manual/​config/​macros/​usermacros|пользовательские макросы]].\\ Один макрос должен заполнять значение целиком. Запись нескольких макросов в значении или смешение макросов с текстом не поддерживается.\\ //​Обратите внимание//:​ Если задано значение равное %%"​%%0%%"​%%,​ элемент данных не будет обрабатываться. Однако,​ если также существует пользовательский интервал (гибкий/​по расписанию) с ненулевым значением,​ элемент данных будет обработан в течении длительности пользовательского интервала.\\ //​Обратите внимание//,​ что первый опрос элемента данных после того как он станет активным или после изменения интервала обновления может произойти раньше чем заданное значение.\\ Можно запросить значение у существующего пассивного элемента данных немедленно,​ нажав на [[#​кнопки_диалога|кнопку]] //​Проверить сейчас//​.|
 +|//​Пользовательские интервалы// ​ |Вы можете создавать пользовательские правила проверки элемента данных:​\\ **Гибкий** - создание исключений из //​Интервала обновления//​ (интервал с другой частотой обновления)\\ **По расписанию** - создание пользовательского расписания проверки.\\ Для получения более подробной информации смотрите [[ru:​manual:​config:​items:​item:​custom_intervals|Пользовательские интервалы]].\\ [[:​ru/​manual/​appendix/​suffixes|Функции времени]] поддерживаются в поле //​Интервал//,​ например,​ 30s, 1m, 2h, 1d.\\ Поддерживаются [[:​ru/​manual/​config/​macros/​usermacros|пользовательские макросы]].\\ Один макрос должен заполнять значение целиком. Запись нескольких макросов в значении или смешение макросов с текстом не поддерживается.\\ Проверка по расписанию поддерживается начиная с Zabix 3.0.0.\\ //​Обратите внимание//:​ Недоступно для активных элементов данных Zabbix агента. |
 +|//​Период хранения истории// ​ |Выберите:​\\ **Не хранить историю** - история элемента данных не будет храниться. Полезно для мастер элементов данных,​ если требуется хранить историю только по зависимым элементам данных.\\ Эта настройку нельзя переопределить при помощи [[ru:​manual:​web_interface:​frontend_sections:​administration:​general#​очистка_истории|настроек]] глобальной очистки истории.\\ **Период хранения** - задаёт длительность хранения детальной истории в базе данных (от 1 часа до 25 лет). Более старые данные будут удаляться процессом очистки истории. Указывается в секундах.\\ Поддерживаются [[:​ru/​manual/​appendix/​suffixes|функции времени]],​ например,​ 2h, 1d. Поддерживаются [[:​ru/​manual/​config/​macros/​usermacros|пользовательские макросы]].\\ Значение //​Периода хранения//​ может быть переопределено глобально в //​Администрирование -> Общие -> [[ru:​manual:​web_interface:​frontend_sections:​administration:​general#​очистка_истории|Очистка истории]]//​.\\ Если существует глобальное переопределение,​ будет отображаться зеленая {{manual:​config:​info.png|}} иконка с информацией. Если вы поместите курсор мыши на эту иконку,​ отобразится сообщение с предупреждением,​ например,​ //​Переопределено глобальными настройками очистки истории (1d)//.\\ Рекомендуется хранить записанные значения как можно меньше,​ чтобы уменьшить размер истории значений в базе данных. Вместо длительного хранения истории значений вы можете дольше хранить данные динамики изменений.\\ Смотрите также [[:​ru/​manual/​config/​items/​history_and_trends|История и динамика изменений]]. ​ |
 +|//​Период хранения динамики изменений// ​ |Выберите:​\\ **Не хранить динамику изменений** - динамика изменений не будет храниться.\\ Эта настройку нельзя переопределить при помощи [[ru:​manual:​web_interface:​frontend_sections:​administration:​general#​очистка_истории|настроек]] глобальной очистки истории.\\ **Период хранения** - задаёт длительность хранения агрегированной (почасовые значения мин, макс, сред, кол-во) истории в базые данных (от 1 дня до 25 лет). Более старые данные будут удаляться процессом очистки истории. Указывается в секундах.\\ Поддерживаются [[:​ru/​manual/​appendix/​suffixes|функции времени]],​ например,​ 24h, 1d. Поддерживаются [[:​ru/​manual/​config/​macros/​usermacros|пользовательские макросы]].\\ Значение //​Периода хранения//​ может быть переопределено глобально в //​Администрирование -> Общие -> [[ru:​manual:​web_interface:​frontend_sections:​administration:​general#​очистка_истории|Очистка истории]]//​.\\ Если существует глобальное переопределение,​ будет отображаться зеленая {{manual:​config:​info.png|}} иконка с информацией. Если вы поместите курсор мыши на эту иконку,​ отобразится сообщение с предупреждением,​ например,​ //​Переопределено глобальными настройками очистки истории (7d)//.\\ //​Обратите внимание://​ Хранение динамики изменений недоступно для не числовых данных - символ,​ журнал и текст.\\ Смотрите также [[:​ru/​manual/​config/​items/​history_and_trends|История и динамика изменений]]. |
 +|//​Отображение значений// ​ |Применение преобразования значений к этому элементу данных. Преобразование значений не меняет полученные значения,​ оно служит только для отображаемых данных.\\ Эта опция работает с элементами данных //​Числовой (целое положительное)//,​ //​Числовой(с плавающей точкой)//​ и //​Символ//​.\\ Например,​ "​Windows service states"​.|
 +|//​Формат времени журнала// ​ |Доступен только для элементов данных типа **Журнал**. Поддерживаемые значения:​\\ ​    * **y**: //Год (1970-2038)//​\\ ​    * **M**: //​Месяц (01-12)//​\\ ​    * **d**: //День (01-31)//​\\ ​    * **h**: //Час (00-23)//​\\ ​    * **m**: //​Минута (00-59)//​\\ ​    * **s**: //​Секунда (00-59)//\\ Если оставить это поле пустым,​ то штамп времени не будет обрабатываться.\\ Например,​ рассмотрим следующую строку из файла журнала Zabbix агента:​\\ " 23480:​20100328:​154718.045 Zabbix agent started. Zabbix 1.8.2 (revision 11211)."​\\ Она начинается с шести символьных позиций PID, далее дата, время и остальная часть строки.\\ Формат времени журнала для этой строки должен быть "​pppppp:​yyyyMMdd:​hhmmss"​.\\ Обратите внимание,​ что символы "​p"​ и ":"​ являются лишь заменителями и могут быть какими угодно,​ кроме "​yMdhms"​. |
 +|//​Новая группа элементов данных// ​ |Введите имя новой группы элементов данных для этого элемента данных. ​ | 
 +|//​Группы элементов данных// ​ |Соединение элемента данных с одним или несколькими существующими группами элементов данных.|
 +|//​Заполнение поля\\ инвентаря узла сети// |Вы можете выбрать поле инвентарных данных,​ которое будет заполняться значением элемента данных. Функция будет работать,​ если у узла сети включено автоматическое заполнение [[:​ru:​manual:​config:​hosts:​inventory|инвентарных данных]].|
 +|//​Описание//​ |Введите описание элемента данных. |
 +|//​Активировано// ​ |Отметьте для активации элемента данных,​ таким образом он будет обрабатываться. |
 +
 +<​note>​Уникальные поля по типам элементов данных описаны на [[itemtypes|соответствующих страницах]].</​note>​
 +<​note>​При редактировании элемента данных уровня [[ru:​manual:​config:​templates|шаблона]] на уровне узла сети, некоторое количество полей доступно только для чтения. Вы можете воспользоваться ссылкой из заголовка диалога и перейти на уровень шаблона и отредактировать элемент данных там, однако имейте в виду, что изменение элемента данных коснется всех узлов сети к которым присоединен шаблон.</​note>​
 +
 +=== Ограничения текстовых данных ===
 +
 +Ограничения текстовых данных зависят от выбранной базы данных. Перед сохранением текстовых значений в базу данных,​ эти значения обрезаются в соотвествии с ограничением типа значений в базе данных:​
 +
 +^ База данных ^  Тип информации ​ ^^^
 +^ ::: ^ Символ ​  ^ Журнал (лог) ​            ^ Текст ​            ^
 +| MySQL      | 255 символов | 65536 байт ​     | 65536 байт ​     |
 +| PostgreSQL | 255 символов | 65536 символов | 65536 символов |
 +| Oracle ​    | 255 символов | 65536 символов | 65536 символов |
 +| DB2        | 255 байт ​     | 2048 байт ​      | 2048 байт ​      |
 +
 +=== Чёрный список единиц измерения ===
 +
 +По умолчанию,​ указывая единицу измерения элементу данных,​ вы увидите добавленный префикс множителя - например,​ значение '​2048'​ с единицей измерения '​B'​ будет отображаться как '​2KB'​.
 +
 +Однако,​ используя ''​!''​ префикс,​ можно избежать конвертации любой единицы измерения,​ например ''​!B''​. Чтобы лучше проиллюстрировать то, каким образом это преобразование работает с и без чёрного списка,​ просмотрите следующие примеры значений и единиц измерения:​
 +
 +  1024 !B -> 1024 B
 +  1024 B -> 1 KB
 +  61 !s -> 61 s
 +  61 s -> 1m 1s
 +  0 !uptime -> 0 uptime
 +  0 uptime -> 00:00:00
 +  0 !! -> 0 !
 +  0 ! -> 0
 +
 +<​note>​До Zabbix 4.0, имелся зашитый в код чёрный список единиц измерения,​ который состояил из ''​ms'',​ ''​rpm'',​ ''​RPM'',​ ''​%''​. Этот чёрный список считается устаревшим,​ поэтому правильным способом внесения в чёрный список подобных единиц измерения будет ''​!ms'',​ ''​!rpm'',​ ''​!RPM'',​ ''​!%''​.</​note>​
 +
 +=== Предобработка значений элемента данных ===
 +
 +Вкладка **Предобработка** позволяет задать правила преобразования полученных значений. Можно использовать одно или несколько правил предобработки до сохранения значений в базу данных. Преобразования выполняются в том порядке,​ в котором они были добавлены. Вся предобработка выполняется как Zabbix сервером,​ так и Zabbix прокис (если элементы данных наблюдаются прокси).
 +
 +Смотрите также: [[:​ru/​manual/​appendix/​preprocessing/​preprocessing_details|Подробная информация о предварительной обработке]]
 +
 +{{manual:​config:​item_b.png?​600|}}
 +
 +В параметрах предварительной обработки значений элементов данных поддерживаются [[:​ru/​manual/​config/​macros/​usermacros|пользовательские макросы]] и пользовательские макросы с контекстом.
 +
 +<​note>​Элемент данных станет [[:​ru/​manual/​config/​items/​item#​неподдерживаемые_элементы_данных|неподдерживаемым]],​ если какой-либо из шагов предобработки завершится с ошибкой за исключением,​ если задана пользовательская обработка ошибок с использованием опции //​Другое при ошибке//​ для поддерживаемых преобразований.\\ \\ Для элементов данных журнала,​ метаданных журнала (без значения) неподдерживаемое состояние всегда сбрасывается и этот элемент данных становится поддерживаемым снова даже, если начальная ошибка произошла после получения значения журнала от агента.</​note>​
 +
 +^Тип^Преобразование^Описание^
 +|  |||
 +^Текст ​ ^^^
 +|   ​|//​Регулярное выражение// ​ |Совпадение значения с регулярным выражением <​шаблона>​ и замена значения в соответствии с <​выводом>​. Регулярное выражение поддерживает извлечение до 10 захваченных групп в \N последовательности. Элемент данных станет неподдерживаемым в случае ошибки при поиске соответствия во входящем значении.\\ Параметры:​\\ **шаблон** - регулярное выражение\\ **вывод** - шаблон форматирования вывода. \N (где N=1..9) - управляющая последовательность заменяется N-нной совпадающей группой. Управляющая последовательность \0 заменяется совпадающим текстом\\ Поддерживается начиная с 3.4.0. \\ Пожалуйста,​ обратитесь в разделу [[ru:​manual:​regular_expressions#​пример|регулярных выражений]] для ознакомления с некоторыми существующими примерами.\\ Если вы отметите опцию //​Другое при ошибке//,​ элемент данных не станет неподдерживаемым при ошибке на шаге предобработки и появится возможность задать пользовательскую опцию обработки ошибок:​ либо отбросить значение,​ задать пользовательское значение или задать пользовательское сообщение об ошибке.|
 +|:::​|//​Обрезка// ​ |Удаление указанных символов с начала или конца значения. ​ |
 +|:::​|//​Обрезка справа// ​ |Удаление указанных символов с конца значения. ​ |
 +|:::​|//​Обрезка слева// ​ |Удаление указанных символов с начала значения. ​ |
 +^Структурированные данные ​ ^^^
 +|   ​|//​XML XPath// ​ |Извлечение значения или фрагмента из XML данных с использованием XPath функционала.\\ Чтобы эта опция заработала,​ Zabbix сервер необходимо скомпилировать с поддержкой libxml.\\ Примеры:​\\ ''​number(/​document/​item/​value)''​ извлечёт ''​10''​ из ''<​document><​item><​value>​10</​value></​item></​document>''​\\ ''​number(/​document/​item/​@attribute)''​ извлечёт ''​10''​ из ''<​nowiki><​document><​item attribute="​10"></​item></​document></​nowiki>''​\\ ''/​document/​item''​ извлечёт ''<​item><​value>​10</​value></​item>''​ из ''<​document><​item><​value>​10</​value></​item></​document>''​\\ Обратите внимание на то, что пространства имен не поддерживаются.\\ Поддерживается начиная с 3.4.0.\\ Если вы отметите опцию //​Другое при ошибке//,​ элемент данных не станет неподдерживаемым при ошибке на шаге предобработки и появится возможность задать пользовательскую опцию обработки ошибок:​ либо отбросить значение,​ задать пользовательское значение или задать пользовательское сообщение об ошибке. ​ |
 +|:::|//JSON Path// ​ |Извлечение значения или фрагмента с JSON данных с использованием [[:​ru/​manual/​appendix/​preprocessing/​jsonpath_functionality|JSONPath функционала]].\\ Если вы отметите опцию //​Другое при ошибке//,​ элемент данных не станет неподдерживаемым при ошибке на шаге предобработки и появится возможность задать пользовательскую опцию обработки ошибок:​ либо отбросить значение,​ задать пользовательское значение или задать пользовательское сообщение об ошибке. ​ |
 +|:::|//CSV в JSON// ​ |Конвертация данных из CSV файла в JSON формат.\\ Для получения более подробной информации смотрите:​ [[:​ru/​manual/​appendix/​preprocessing/​csv_to_json#​обработка_csv_заголовка|Предобработка CSV в JSON]].\\ Поддерживается начиная с 4.4.0. ​ |
 +^Арифметические ​ ^^^
 +|   ​|//​Пользовательский множитель// ​ |Умножение значения на заданное целое или дробное число.\\ Используйте эту опцию, чтобы сконвертировать полученные значения в KB, MBps, и т.д. в B, Bps. В противном случае Zabbix не сможет корректно подставить [[:​ru/​manual/​appendix/​suffixes|префиксы]] (K, M, G и т.д.).\\ //​Обратите внимание//,​ если тип информации элемента данных //​Числовой (целое положительное)//,​ входящие значения с дробной частью будут обрезаны (т.е. '​0.9'​ станет '​0'​) до применения пользовательского множителя.\\ Начиная с  Zabbix 2.2, также поддерживается научное представление. Например,​ 1e+70.\\ Если вы отметите опцию //​Другое при ошибке//,​ элемент данных не станет неподдерживаемым при ошибке на шаге предобработки и появится возможность задать пользовательскую опцию обработки ошибок:​ либо отбросить значение,​ задать пользовательское значение или задать пользовательское сообщение об ошибке. ​ |
 +^Изменение ​ ^^^
 +|   ​|//​Простое изменение// ​ |Вычисление разницы между текущим и предыдущим значениями.\\ Вычисляется **значение**-**пред_значение**,​ где\\ //​значение//​ - текущее значение;​ //​пред_значение//​ - ранее полученное значение\\ Эта опция может быть полезной для измерения постоянно растущего значения. Если текущее значение меньше предыдущего,​ тогда Zabbix отбрасывает это изменение (ничего не записывает) и ждет следующего значения.\\ На один элемент данных разрешена только одна операция изменения.\\ Если вы отметите опцию //​Другое при ошибке//,​ элемент данных не станет неподдерживаемым при ошибке на шаге предобработки и появится возможность задать пользовательскую опцию обработки ошибок:​ либо отбросить значение,​ задать пользовательское значение или задать пользовательское сообщение об ошибке. ​ |
 +|:::​|//​Изменение в секунду// ​ |Вычисление изменения значения (разница между текущим и предыдущим значениями) скорость в секунду.\\ Вычисляется (**значение**-**пред_значение**)/​(**время**-**пред_время**),​ где\\ //​значение//​ - текущее значение;​ //​пред_значение//​ - ранее полученное значение;​ //​время//​ - текущий штамп времени;​ //​пред_значение//​ - штамп времени предыдущего значения.\\ Эта настройка крайне полезна при получении скорости в секунду в случае постоянно увеличивающихся значений. Если текущее значение меньше чем предыдущее значение,​ Zabbix отбрасывает эту разницу (ничего не записывает) и ждет следующее значение. Такое поведение помогает отрабатывать,​ например,​ переполнение 32-битных счетчиков SNMP.\\ //​Обратите внимание//:​ Так как результатом этого вычисления может быть число с плавающей точкой,​ рекомендуется использовать '​Тип информации'​ - //​Числовой (с плавающей точкой)//,​ даже если входящие значения целые положительные числа. Это особенно актуально для маленьких чисел где дробная часть имеет значение. Если числа с плавающей точкой очень большие и могут превысить длину поля в этом случае введенное значение может быть потеряно,​ в таком случае предлагается использовать тип //​Числовой (целое положительное)//​ и это отбросит только дробную часть.\\ На один элемент данных разрешена только одна операция изменения.\\ Если вы отметите опцию //​Другое при ошибке//,​ элемент данных не станет неподдерживаемым при ошибке на шаге предобработки и появится возможность задать пользовательскую опцию обработки ошибок:​ либо отбросить значение,​ задать пользовательское значение или задать пользовательское сообщение об ошибке. ​ |
 +^Системы счисления ​ ^^^
 +|   ​|//​Двоичное в десятичное// ​ |Конвертация значения из логического в десятичный формат. Текстовое представление переводится в значения 0 или 1. Таким образом,​ '​TRUE'​ хранится как 1 и '​FALSE'​ хранится как 0. Все значения сопоставляются чувствительным к регистру способом. В данное время распознаются значения для:\\ //TRUE// - true, t, yes, y, on, up, running, enabled, available, ok, master\\ //FALSE// - false, f, no, n, off, down, unused, disabled, unavailable,​ err, slave\\ Кроме того, любое ненулевое значение считается TRUE, нулевое считается FALSEE.\\ Следующие значения поддерживаются начиная с 4.0.0: ​ ok, master, err, slave.\\ Если вы отметите опцию //​Другое при ошибке//,​ элемент данных не станет неподдерживаемым при ошибке на шаге предобработки и появится возможность задать пользовательскую опцию обработки ошибок:​ либо отбросить значение,​ задать пользовательское значение или задать пользовательское сообщение об ошибке. ​   |
 +|:::​|//​Восьмеричное в десятичное// ​ |Конвертация значения из восьмеричного в десятичный формат.\\ Если вы отметите опцию //​Другое при ошибке//,​ элемент данных не станет неподдерживаемым при ошибке на шаге предобработки и появится возможность задать пользовательскую опцию обработки ошибок:​ либо отбросить значение,​ задать пользовательское значение или задать пользовательское сообщение об ошибке. ​ |
 +|:::​|//​Шестнадцатеричное в десятичное// ​ |Конвертация значения из шестнадцатеричного в десятичный формат.\\ Если вы отметите опцию //​Другое при ошибке//,​ элемент данных не станет неподдерживаемым при ошибке на шаге предобработки и появится возможность задать пользовательскую опцию обработки ошибок:​ либо отбросить значение,​ задать пользовательское значение или задать пользовательское сообщение об ошибке. ​ |
 +^Пользовательские скрипты ​ ^^^
 +|   ​|//​Javascript// ​ |Ввод кода JavaScript в этот блок, который появляется при нажатии на поле параметра или на //​Открыть//​.\\ Обратите внимание,​ что доступная длина JavaScript зависит от [[#​ограничения_пользовательского_скрипта|используемой базы данных]].\\ Для получения более подробной информации смотрите:​ [[:​ru/​manual/​appendix/​preprocessing/​javascript|Детали предобработки при помощи Javascript]]. ​ |
 +^Валидация ​ ^^^
 +|   ​|//​По диапазону// ​ |Определение диапазона,​ в котором должно быть значение,​ таким образом указываются минимальное / максимальные значения (включительно).\\ Принимаются числовые значения (включая любое количество цифр, опциональной дробной частью и опциональной экспоненциальной частью,​ а также отрицательные значения). Можно использовать пользовательские макросы и макросы низкоуровневого обнаружения. Минимальное значение должно быть меньше чем максимальное.\\ Должно существовать по крайней мере одно значение.\\ Если вы отметите опцию //​Другое при ошибке//,​ элемент данных не станет неподдерживаемым при ошибке на шаге предобработки и появится возможность задать пользовательскую опцию обработки ошибок:​ либо отбросить значение,​ задать пользовательское значение или задать пользовательское сообщение об ошибке. ​ |
 +|:::​|//​Совпадение регулярному выражению// ​ |Регулярное выражение,​ которому значение должно соответствовать.\\ Если вы отметите опцию //​Другое при ошибке//,​ элемент данных не станет неподдерживаемым при ошибке на шаге предобработки и появится возможность задать пользовательскую опцию обработки ошибок:​ либо отбросить значение,​ задать пользовательское значение или задать пользовательское сообщение об ошибке. ​ |
 +|:::|//Не совпадает с регулярным выражением// ​ |Регулярное выражение,​ которому значение не должно соответствовать.\\ Если вы отметите опцию //​Другое при ошибке//,​ элемент данных не станет неподдерживаемым при ошибке на шаге предобработки и появится возможность задать пользовательскую опцию обработки ошибок:​ либо отбросить значение,​ задать пользовательское значение или задать пользовательское сообщение об ошибке. ​ |
 +|:::​|//​Проверка на ошибку в JSON// ​ |Проверка на наличие сообщения об ошибке на уровне приложения,​ обнаруженной в JSONpath. Остановка обработки,​ если успешно и сообщение не пустое;​ в противном случае продолжение обработки со значением,​ которое было до этого шага обработки. Обратите внимание,​ что эти ошибки внешнего сервиса сообщаются пользователю как есть, без добавления информации шага предобработки.\\ Ошибка не будет сообщена в случае неудачного анализа ошибочного JSON.\\ Если вы отметите опцию //​Другое при ошибке//,​ элемент данных не станет неподдерживаемым при ошибке на шаге предобработки и появится возможность задать пользовательскую опцию обработки ошибок:​ либо отбросить значение,​ задать пользовательское значение или задать пользовательское сообщение об ошибке. ​ |
 +|:::​|//​Проверка на ошибку в XML//  |Проверка на наличие сообщения об ошибке на уровне приложения,​ обнаруженной в xpath. Остановка обработки,​ если успешно и сообщение не пустое;​ в противном случае продолжение обработки со значением,​ которое было до этого шага обработки. Обратите внимание,​ что эти ошибки внешнего сервиса сообщаются пользователю как есть, без добавления информации шага предобработки.\\ Ошибка не будет сообщена в случае неудачного анализа ошибочного XML.\\ Если вы отметите опцию //​Другое при ошибке//,​ элемент данных не станет неподдерживаемым при ошибке на шаге предобработки и появится возможность задать пользовательскую опцию обработки ошибок:​ либо отбросить значение,​ задать пользовательское значение или задать пользовательское сообщение об ошибке. ​ |
 +|:::​|//​Проверка на ошибку с использованием регулярного выражения// ​ |Проверка на наличие сообщения об ошибке на уровне приложения с использованием регулярного выражения. Остановка обработки,​ если успешно и сообщение не пустое;​ в противном случае продолжение обработки со значением,​ которое было до этого шага обработки. Обратите внимание,​ что эти ошибки внешнего сервиса сообщаются пользователю как есть, без добавления информации шага предобработки.\\ Параметры:​\\ **шаблон** - регулярное выражение\\ **вывод** - шаблон форматирования вывода. \N (где N=1..9) - управляющая последовательность заменяется N-нной совпадающей группой. Управляющая последовательность \0 заменяется совпадающим текстом.\\ Если вы отметите опцию //​Другое при ошибке//,​ элемент данных не станет неподдерживаемым при ошибке на шаге предобработки и появится возможность задать пользовательскую опцию обработки ошибок:​ либо отбросить значение,​ задать пользовательское значение или задать пользовательское сообщение об ошибке. ​ |
 +^Троттлинг ​ ^^^
 +|   ​|//​Отбрасывать не изменившееся// ​ |Игнорирование значения,​ если оно не изменилось.\\ Если значение отброшено,​ оно не записывается в базу данных и Zabbix сервер не будет иметь подтверждения,​ что это значение было получено. Выражения триггеров не вычисляются,​ в результате проблемы не будут созданы/​решены по относящимся к элементу данным триггерам. Функции триггеров будут работать только на основе данных,​ которые в фактически сохранены в базе данных. Поскольку динамика изменений строится на основе данных в базе данных,​ если ни одного значения не сохранено в течении часа, тогда за этот час также будут отсутствовать данные динамики изменений.\\ Для элемента данных можно указать только одну опцию троттлинга. ​ |
 +|:::​|//​Отбрасывать не изменившееся с периодическим контролем// ​ |Игнорирование значение,​ если оно не изменилось,​ в течении заданного периода времени (в секундах).\\ Поддерживаются положительные числовые значения,​ которые указывают количество секунд (минимально - 1 секунда). В этом поле можно использовать суффиксы времени (например,​ 30s, 1m, 2h, 1d). В этом поле можно использовать пользовательские макросы и макросы низкоуровневого обнаружения.\\ Если значение отброшено,​ оно не записывается в базу данных и Zabbix сервер не будет иметь подтверждения,​ что это значение было получено. Выражения триггеров не вычисляются,​ в результате проблемы не будут созданы/​решены по относящимся к элементу данным триггерам. Функции триггеров будут работать только на основе данных,​ которые в фактически сохранены в базе данных. Поскольку динамика изменений строится на основе данных в базе данных,​ если ни одного значения не сохранено в течении часа, тогда за этот час также будут отсутствовать данные динамики изменений.\\ Для элемента данных можно указать только одну опцию троттлинга. ​ |
 +^Prometheus ​ ^^^
 +|   ​|//​Шаблон Prometheus// ​ |Использование следующего запроса для извлечения требуемых данных из Prometheus метрик.\\ Смотрите [[:​ru/​manual/​config/​items/​itemtypes/​prometheus|проверки Prometheus]] для получения более подробных сведений. ​ |
 +|:::​|//​Prometheus в JSON// ​ |Конвертация необходимых Prometheus метрик в JSON.\\ Смотрите [[:​ru/​manual/​config/​items/​itemtypes/​prometheus|проверки Prometheus]] для получения более подробных сведений. ​ |
 +
 +Для выполнения шагов предобработки изменения и троттлинга Zabbix вынужден запоминать последнее значение,​ чтобы вычислить / сравнить новое значение,​ по мене необходимости. Если Zabbix сервер перезапущен или имеется какое-либо изменение шагов предобработки,​ последнее значение соответствующего элемента данных сбрасывается,​ в результате чего:
 +  * для шагов //​Простое изменение//,​ //​Изменение в секунду//​ - следующее значение будет проигнорировано,​ так как отсутствует предыдущее значение для которого вычисляется изменение;​
 +  * для шагов //​Отбрасывать не изменившееся//​. //​Отбрасывать не изменившееся с периодическим контролем//​ - следующее значение никогда не отбрасывается даже, если оно должно быть отброшено согласно правилам игнорирования одинаковых значений.
 +
 +<note tip>​Если вы используете пользовательский множитель или хранение значений как //​Изменение в секунду//​ у элементов данных с типом информации //​Числовой (целое положительное)//​ и результирующее вычисленное значение в действительности дробное число, тогда вычисленное значение всё же будет считаться приемлемым,​ однако дробная часть будет обрезана и значение запишется как целое положительное.</​note>​
 +
 +== Ограничения пользовательского скрипта ==
 +
 +Доступная длина пользовательского скрипта зависит от используемой базы данных:​
 +
 +|//База данных//​ |//​Ограничение в символах //| //​Ограничение в байтах //|
 +|**MySQL**|65535|65535|
 +|**База данных Oracle**|2048|4000|
 +|**PostgreSQL**|65535|без ограничения|
 +|**IBM DB2**|2048|2048|
 +|**SQLite (только Zabbix прокси)**|65535|без ограничения|
 +
 +=== Тестирование шагов предобработки ===
 +
 +Тестирование шагов предобработки может быть полезным для того, чтобы быть уверенными,​ что сложные конвейеры предобработки дают желаемые от них результаты,​ без необходимости ожидания получения и обработки значения элемента данных.
 +
 +Можно протестировать каждый шаг предобработки отдельно,​ как и все шаги предобработки вместе. При нажатии на кнопку //​Тест//​ или //Тест всех шагов//​ кнопку соответственно в блоке Действий откроется окно тестирования.
 +
 +{{:​manual:​config:​test_item_preprocessing0.png?​600|}}
 +
 +^Параметр^Описание^
 +|//​Значение// ​ |Ввод тестируемого входящего значения.\\ При нажатии на поле параметра или на кнопку просмотра / изменения откроется окно с текстовым полем для ввода значения или блока кода. ​ |
 +|//​Время// ​ |Время получения входящего значения:​ ''​now''​ (только-чтение). ​ |
 +|//​Предыдущее значение// ​ |Ввод предыдущего входящего значения,​ с которым будет происходить сравнение.\\ Только для шагов предобработки //​Изменение//​ и //​Троттлинг//​. ​ |
 +|//​Предыдущее время// ​ |Ввод времени получения предыдущего входящего значения,​ с которым будет происходить сравнение.\\ Только для шагов предобработки //​Изменение//​ и //​Троттлинг//​.\\ Значение пол умолчанию основывается на значении поля '​Интервал обновления'​ элемента данных (если '​1m',​ тогда это поле заполняется значением ''​now-1m''​). Если ничего не указано или пользователь не имеет доступа к узлу сети, по умолчанию значение ''​now-30s''​. ​ |
 +|//​Макросы// ​ |Если используются какие-либо макросы,​ они будут перечислены вместе со своими значениями. Эти значения доступны для редактирования в целях тестирования,​ но изменения будут сохранены только в контексте тестирования.\\ Если используются не существующие или недоступные (по причине отсутствия прав доступа) имена макросов,​ значения этих макросов доступны для изменения также в контексте тестирования. ​ |
 +|//​Конец строки// ​ |Выберите последовательность завершения строки для многострочных входящих значений:​\\ **LF** - LF (перевод строки) последовательность\\ **CRLF** - CRLF (возврат каретки) последовательность. |
 +|//Шаги предобработки// ​ |Перечисление шагов предобработки;​ результат тестирования отображается по каждому шагу после нажатия //​Тест//​ кнопки.\\ Если при тестировании шаг завершается с ошибкой,​ отображается иконка с ошибкой. Описание ошибки доступно при наведении курсора мыши на эту иконку.\\ В случае,​ если задано "​Другое при ошибке"​ для шага и это действие применяется,​ тогда появляется новая строка сразу после строки с шагом предобработки,​ которая отображает что действие было выполнено и какой результат оно дало (ошибку или значение). ​ |
 +|//​Результат// ​ |Конечный результат тестирования шагов предобработки отображается во всех случаях,​ когда все шаги тестируются вместе (при нажатии на //Тест всех шагов//​ кнопку).\\ Также отображается тип преобразования в тип значения элемента данных,​ например ''​Результат сконвертирован в Числовой (целое положительное)''​. Иконка с ошибкой отображается при наличии каких-либо ошибок. Описание ошибки отображается при наведении курсора мыши на эту иконку. |
 +
 +Нажмите на //​Тест//,​ чтобы увидеть результат после каждого шага предобработки.
 +
 +Значения тестов сохраняются между сеансами тестирования по каждому отдельному шагу или по всем шагам, позволяя пользователю менять шаги предобработки или настройки элемента данных и затем возвращаться к окну тестирования без необходимости повторного ввода информации. Однако,​ значения теряются при обновлении страницы.
 +
 +Тестирование выполняется Zabbix сервером. Веб-интерфейс отправляет соответствующий запрос на сервер и ожидает результаты. Запрос содержит входящее значение и шаги предобработки (с раскрытыми пользовательскими макросами). Для шагов //​Изменение//​ и //​Троттлинг//,​ можно указать опциональные предыдущее значение и время. Сервер отвечает результатом по каждому отдельному шагу. ​
 +
 +Технические ошибки подключения отображаются в виде блока с ошибкой сверху окна тестирования.
 +
 +=== Кнопки диалога ===
 +
 +Кнопки в нижней части диалога позволяют выполнить несколько видов операций.
 +
 +|{{manual:​config:​button_add.png|}} ​ |Добавление элемента данных. Эта кнопка доступна только для новых элементов данных. ​ |
 +|{{manual:​config:​button_update.png|}} ​ |Обновление свойств элемента данных. ​ |
 +|{{manual:​config:​button_clone.png|}} ​ |Создание другого элемента данных на основе свойств текущего элемента данных. ​ |
 +|{{manual:​config:​button_check_now.png|}} ​ |Выполнение немедленной проверки нового значения элемента данных. Поддерживается только для **пассивных** проверок (смотрите более [[:​ru/​manual/​config/​items/​check_now|детальную информацию]]).\\ //​Обратите внимание//,​ что когда выполняется немедленная проверка значения,​ кэш конфигурации не обновляется,​ поэтому значение не будет отражать совсем недавние изменения настроек элемента данных. ​ |
 +|{{manual:​config:​button_clear_history.png|}} ​ |Удаление истории и динамики изменений элемента данных. ​ |
 +|{{manual:​config:​button_delete.png|}} ​ |Удаление элемента данных. ​ |
 +|{{manual:​config:​button_cancel.png|}} ​ |Отмена изменения свойств элемента данных. ​ |
 +
 +=== Неподдерживаемые элементы данных ===
 +
 +Элемент данных может стать неподдерживаемым,​ если его значение не было получено по некоторым причинам. Такие элементы данных будут перепроверены через определенный интервал времени,​ настраиваемый в [[ru:​manual:​web_interface:​frontend_sections:​administration:​general#​остальные_параметры|разделе Администрирования]].
 +
 +Неподдерживаемые элементы данных отображаются со статусом НЕ ПОДДЕРЖИВАЕТСЯ.