Zabbix Documentation 4.0

3.04.05.0 (current)| In development:5.2 (devel)| Unsupported:1.82.02.22.43.23.44.24.4Guidelines

User Tools

Site Tools


ru:manual:appendix:triggers:functions

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
ru:manual:appendix:triggers:functions [2016/01/12 21:53]
dotneft
ru:manual:appendix:triggers:functions [2019/12/02 08:07] (current)
dotneft
Line 1: Line 1:
-==== - #1 Поддерживаемые функции триггеров ====+==== 1 Поддерживаемые функции триггеров ====
  
 Здесь перечислены все поддерживаемые функции в [[:​ru/​manual/​config/​triggers/​expression|выражениях триггеров]]:​ Здесь перечислены все поддерживаемые функции в [[:​ru/​manual/​config/​triggers/​expression|выражениях триггеров]]:​
  
-^ ФУКНЦИЯ ​ ^^^^+^ ФУНКЦИЯ ​ ^^^^
 ^ ^  **Описания** ​ ^  **Параметры** ​ ^  **Комментарии** ​ ^ ^ ^  **Описания** ​ ^  **Параметры** ​ ^  **Комментарии** ​ ^
 |**abschange** ​ ^^^^ |**abschange** ​ ^^^^
-^ |Абсолютная разница между последним и предыдущим значениями. | |Поддерживаемые типы значений:​ float, int, str, text, log\\ \\ Например:​\\ (предыдущее значение/последнее значение=abschange)\\ 1/5=4\\ 3/1=2\\ 0/-2.5=2.5\\ \\  Результат для строк:​\\ 0 - значения равны\\ 1 - значения различаются ​ |+^ |Абсолютная разница между последним и предыдущим значениями. | |Поддерживаемые типы значений:​ float, int, str, text, log\\ \\ Например:​\\ (предыдущее значение;последнее значение=abschange)\\ 1;5=4\\ 3;1=2\\ 0;-2.5=2.5\\ \\  Результат для строк:​\\ 0 - значения равны\\ 1 - значения различаются ​ |
 ^ |||| ^ ||||
 |**avg** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^ |**avg** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^
-^ |Среднее значение элемента данных за указанный период времени. |**сек** или **кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - точка вычисления перемещается на указанное количество секунд назад во времени |Поддерживаемые типы значений:​ float, int\\ \\ Примеры:​\\ => avg(#5) -> среднее значение за пять последних значений\\ => avg(3600) -> среднее значение за час\\ => avg(3600,86400) -> среднее значение за час днем ранее.\\ \\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. Этот параметр очень полезен,​ если требуется сравнить текущее значение усреднения со значением усреднения сдвиг_времени секунд ранее. |+^ |Среднее значение элемента данных за указанный период времени. |**сек** или **кол-во** - максимальный ​период<​sup>​**[[#​примечания|1]]**</​sup> ​вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - точка вычисления перемещается на указанное количество секунд назад во времени |Поддерживаемые типы значений:​ float, int\\ \\ Примеры:​\\ => avg(#5) -> среднее значение за пять последних значений\\ => avg(1h) -> среднее значение за час\\ => avg(1h,1d) -> среднее значение за час днем ранее.\\ \\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. Этот параметр очень полезен,​ если требуется сравнить текущее значение усреднения со значением усреднения сдвиг_времени секунд ранее. |
 ^ |||| ^ ||||
-|**band** (сек<​nowiki>​|</​nowiki>#​кол-во,​маска,<​сдвиг_времени>​) ​ ^^^^ +|**band** (<сек<​nowiki>​|</​nowiki>#​кол-во>,​маска,<​сдвиг_времени>​) ​ ^^^^ 
-^ |Значение "​побитового И" от значения элемента данных и маски. |**сек** (игнорируется) или **кол-во** - N-ое наиболее новое значение\\ **маска** (обязательна) - 64-битное целое число (0 - 18446744073709551615)\\ **сдвиг_времени** (опционально) - см. функцию avg() |Поддерживаемые типы значений:​ int\\ \\ Обратите внимание,​ что ''#​кол-во''​ здесь работает иначе, чем во многих других функциях (смотри last()).\\ \\ Хотя сравнение выполняется побитовым образом,​ все значения должны подставляться и возвращаться в десятичном виде. Например,​ выполнение проверки 3-го бита, сравнением с 4, не со 100.\\ \\ Примеры:​\\ => %%band(,​​12)=8 or band(,​​12)=4%% -> 3-ий и 4-ый биты установлены,​ но не оба в одно время\\ => %%band(,​​20)=16%% -> 3-ий бит не установлен и 5 бит установлен.\\ \\ Эта функция поддерживается начиная с Zabbix 2.2.0. |+^ |Значение "​побитового И" от значения элемента данных и маски. |**сек** (игнорируется, равно #1) или **#кол-во** ​(опционально) ​- N-ое наиболее новое значение\\ **маска** (обязательна) - 64-битное целое число (0 - 18446744073709551615)\\ **сдвиг_времени** (опционально) - см. функцию avg() |Поддерживаемые типы значений:​ int\\ \\ Обратите внимание,​ что ''#​кол-во''​ здесь работает иначе, чем во многих других функциях (смотри last()).\\ \\ Хотя сравнение выполняется побитовым образом,​ все значения должны подставляться и возвращаться в десятичном виде. Например,​ выполнение проверки 3-го бита, сравнением с 4, не со 100.\\ \\ Примеры:​\\ => %%band(,​​12)=8 or band(,​​12)=4%% -> 3-ий и 4-ый биты установлены,​ но не оба в одно время\\ => %%band(,​​20)=16%% -> 3-ий бит не установлен и 5 бит установлен.\\ \\ Эта функция поддерживается начиная с Zabbix 2.2.0. |
 ^ |||| ^ ||||
 |**change** ​ ^^^^ |**change** ​ ^^^^
-^ |Величина разницы между последним и предыдущим значениями. | |Поддерживаемые типы значений:​ float, int, str, text, log\\ \\ Например:​\\ (предыдущее значение/последнее значение=изменение)\\ 1/5=+4\\ 3/1=-2\\ 0/-2.5=-2.5\\ \\ Для строк:​\\ 0 - значения равны\\ 1 - значения различаются ​ |+^ |Величина разницы между последним и предыдущим значениями. | |Поддерживаемые типы значений:​ float, int, str, text, log\\ \\ Например:​\\ (предыдущее значение;последнее значение=изменение)\\ 1;5=+4\\ 3;1=-2\\ 0;-2.5=-2.5\\ \\ Смотрите также: [[:​ru/​manual/​appendix/​triggers/​functions|abschange]] для сравнения\\ \\ Для строк:​\\ 0 - значения равны\\ 1 - значения различаются ​ |
 ^ |||| ^ ||||
 |**count** (сек<​nowiki>​|</​nowiki>#​кол-во,<​шаблон>,<​оператор>,<​сдвиг_времени>​) ​ ^^^^ |**count** (сек<​nowiki>​|</​nowiki>#​кол-во,<​шаблон>,<​оператор>,<​сдвиг_времени>​) ​ ^^^^
-^ |Количество собранных значений за указанный период вычисления. |**сек** или **кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **шаблон** (опционально) - требуемый шаблон ​(целые числа - точное совпадение;​ числа с плавающей точкой - совпадение с точностью до 0.000001)\\ **оператор** (опционально)\\ \\ Поддерживаемые ''​операторы'': ​ //eq// - равно\\ //ne// - не равно\\ //gt// - больше\\ //ge// - больше или равно\\ //lt// - меньше\\ //le// - меньше или равно\\ //like// - совпадают,​ если содержат шаблон (регистрозависимое)\\ //band// - побитовое И (поддерживается начиная с Zabbix 2.2.0).\\ \\ Обратите внимание:​\\ //eq// (по умолчанию),​ //ne//, //gt//, //ge//, //lt//, //le//, //band// поддерживаются целочисленными элементами данных\\ //eq// (по умолчанию),​ //ne//, //gt//, //ge//, //lt//, //le// поддерживаются числовыми с плавающей точкой элементами данных\\ //like// (по умолчанию),​ //eq//, //ne// поддерживаются строковыми,​ текстовыми и журнальными элементами данных\\ \\ **сдвиг_времени** (опционально) - смотрите avg()  |Поддерживаемые типы значений:​ float, ​intstr, text, log\\ \\ При наличии **band** третьим параметром,​ второй параметр можно указывать двумя числами,​ разделенными с помощью '/':​ **количество_для_сравнения/​маска**. count() вычисляет "​побитовое И", используя значение и //​маску//,​ и сравнивает результат с //​количеством_для_сравнения//​. Если результат "​побитового И" равен //​количеству_для_сравнения//,​ значение засчитывается.\\ Если //​количество_для_сравнения//​ и //​маска//​ равны, то необходимо указать только параметр //​маска//​ (без '/'​).\\ \\ Примеры:​\\ => count(600) -> количество значений за последние 10 минут\\ => count(600,12) -> количество значений за последние 10 минут, которые равны '​12'​\\ => %%count(600,12,"gt")%% -> количество значений за последние 10 минут, которые больше '​12'​\\ => %%count(#​10,​12,​"gt")%% -> количество значений из последних 10 значений,​ которые больше '​12'​\\ => %%count(600,12,"gt",86400)%% -> количество значений за 10 минут 24 часами ранее, которые больше '​12'​\\ => %%count(600,6/7,"band")%% -> количество значений за последние 10 минут, которые имеют '​110'​ (в бинарном виде) в 3 младших битах.\\ => count(600,,,86400) -> количество значений за 10 минут 24 часами ранее\\ \\ Параметр ''#​кол-во''​ поддерживается начиная с Zabbix 1.6.1.\\ Параметр ''​сдвиг_времени''​ и строковые операторы поддерживаются начиная с Zabbix 1.8.2. |+^ |Количество собранных значений за указанный период вычисления. |**сек** или **кол-во** - максимальный ​период<​​sup>​​**[[#​​примечание|1]]**</​​sup> ​вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **шаблон** (опционально) - требуемый шаблон\\ \\ **оператор** (опционально)\\ \\ Поддерживаемые ''​операторы'': ​ //eq// - равно\\ //ne// - не равно\\ //gt// - больше\\ //ge// - больше или равно\\ //lt// - меньше\\ //le// - меньше или равно\\ //like// - совпадают,​ если содержат шаблон (регистрозависимое)\\ //band// - побитовое И\\ //regexp// - совпадение с учетом ​регистра с регулярным выражением, заданным ​в ''​шаблон''​\\ //iregexp// - совпадение без учета регистра с регулярным выражением, заданным в ''​шаблон''​\\ \\ Обратите внимание:​\\ //eq// (по умолчанию),​ //ne//, //gt//, //ge//, //lt//, //le//, //band//, //regexp//, //iregexp// поддерживаются целочисленными элементами данных\\ //eq// (по умолчанию),​ //ne//, //gt//, //ge//, //lt//, //le//, //regexp//, //iregexp// поддерживаются числовыми с плавающей точкой элементами данных\\ //like// (по умолчанию),​ //eq//, //ne//, //regexp//, //iregexp// поддерживаются строковыми,​ текстовыми и журнальными элементами данных\\ \\ **сдвиг_времени** (опционально) - смотрите avg()  |Поддерживаемые типы значений:​ float, ​integerstring, text, log\\ Элементы данных с плавающей точкой совпадают с точностью до 0.000001.\\ \\ При наличии **band** третьим параметром,​ второй параметр ​''​шаблон'' ​можно указывать двумя числами,​ разделенными с помощью '/':​ **количество_для_сравнения/​маска**. count() вычисляет "​побитовое И", используя значение и //​маску//,​ и сравнивает результат с //​количеством_для_сравнения//​. Если результат "​побитового И" равен //​количеству_для_сравнения//,​ значение засчитывается.\\ Если //​количество_для_сравнения//​ и //​маска//​ равны, то необходимо указать только параметр //​маска//​ (без '/'​).\\ \\ При наличии //regexp// или //iregexp// третьим параметром,​ второй параметр ''​шаблон''​ может быть как обычным,​ так и [[:​ru/​manual/​regular_expressions#​глобальные_регулярные_выражения|глобальным]] (которое начинается с '​@'​) регулярным выражением. В случае глобального регулярного выражения учет регистра наследуется из настроек глобального регулярного выражения. Для цели соответствия регулярному выражению числа с плавающей точкой всегда будут представлены с 4 десятичными знаками после '​.'​. Также обратите внимание на то, что при разница между большими числами в десятичном (хранится в базе данных) и бинарном (используется Zabbix сервере) представлениях может повлиять на 4 цифру после запятой. \\ \\ Примеры:​\\ => count(10m) -> количество значений за последние 10 минут\\ => %%count(10m,"​error",​eq)%% -> количество значений за последние 10 минут, которые равны '​error' ​\\ => count(10m,12) -> количество значений за последние 10 минут, которые равны '​12'​\\ => %%count(10m,12,gt)%% -> количество значений за последние 10 минут, которые больше '​12'​\\ => %%count(#​10,​12,​gt)%% -> количество значений из последних 10 значений,​ которые больше '​12'​\\ => %%count(10m,12,gt,1d)%% -> количество значений за 10 минут 24 часами ранее, которые больше '​12'​\\ => %%count(10m,​6/​7,​band)%% -> количество значений за последние 10 минут, которые имеют '​110'​ (в бинарном виде) в 3 младших битах.\\ => count(10m,,,1d) -> количество значений за 10 минут 24 часами ранее\\ \\ Параметр ''#​кол-во''​ поддерживается начиная с Zabbix 1.6.1.\\ Параметр ''​сдвиг_времени''​ и строковые операторы поддерживаются начиная с Zabbix 1.8.2.\\ Оператор //band// поддерживается начиная с Zabbix 2.2.0.\\ Параметры //regexp//, //iregexp// поддерживаются начиная с Zabbix 3.2.0. |
 ^ |||| ^ ||||
 |**date** ​ ^^^^ |**date** ​ ^^^^
Line 30: Line 30:
 ^ |||| ^ ||||
 |**delta** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^ |**delta** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^
-^ |Разницы между максимальным и минимальным значениями за указанный период вычисления ('​max()'​ минус '​min()'​). |**сек** или **#​кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg() |Поддерживаемые типы значений:​ float, int\\ \\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. |+^ |Разницы между максимальным и минимальным значениями за указанный период вычисления ('​max()'​ минус '​min()'​). |**сек** или **#​кол-во** - максимальный ​период<​​sup>​​**[[#​​примечание|1]]**</​​sup> ​вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg() |Поддерживаемые типы значений:​ float, int\\ \\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. |
 ^ |||| ^ ||||
 |**diff** ​ ^^^^ |**diff** ​ ^^^^
Line 36: Line 36:
 ^ |||| ^ ||||
 |**forecast** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>,​время,<​аппроксимация>,<​режим>​) ^^^^ |**forecast** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>,​время,<​аппроксимация>,<​режим>​) ^^^^
-^ |Будущее значение,​ макс, мин, дельта или сред элемента данных. ​ |**сек** или **#​кол-во** - указывается ​период вычисления в секундах или в количестве собранных значений (начинается с решетки)\\ **сдвиг_времени** (опционально) - см. функцию avg()\\ **время** - горизон предсказания в секундах\\ **аппроксимация** (опционально) - используемая функция для аппроксимации данных истории\\ \\ Поддерживаемые ''​аппроксимации'':​\\ //linear// - линейная функция\\ //​polynomialN//​ - полином степени N (1 <​nowiki><​=</​nowiki>​ N <​nowiki><​=</​nowiki>​ 6)\\ //​exponential//​ - экспоненциальная функция\\ //​logarithmic//​ - логарифмическая функция\\ //power// - степенная функция\\ \\ Обратите внимание,​ что:\\ //linear// является умолчанием,​ //​polynomial1//​ эквивалент //​linear//​\\ \\ **режим** (опционально) - запрашиваемый вывод\\ \\ Поддерживаемые ''​режимы'':​\\ //value// - значение (по умолчанию)\\ //max// - максимальное\\ //min// - минимальное\\ //delta// - //​max//​-//​min//​\\ //avg// - среднее\\ \\ Обратите внимание:​\\ //value// оценивает значение элемента данных за момент ''​сейчас''​ + ''​время''​\\ //max//, //min//, //delta// и //avg// оценивают значение элемента данных за интервал между ''​сейчас''​ и ''​сейчас''​ + ''​время'' ​ |Поддерживаемые типы значений:​ float, int\\ \\ Если возвращаемое значение больше чем 999999999999.9999 или меньше чем -999999999999.9999,​возвращаемое значение обрезается до 999999999999.9999 или -999999999999.9999 соответственно.\\ \\ Становится не поддерживаемым только,​ если в выражении имеется злоупотребление (ошибочный тип элемента данных,​ некорректные параметры),​ в противном случае возвращает -1 в случае ошибок.\\ \\ Примеры:​\\ => forecast(#​10,,​1h) -> прогноз значения элемента данных через один час на основе последних 10 значений\\ => forecast(1h,,​30m) -> прогноз значения элемента данных через 30 минут на основе данных последнего часа\\ => forecast(1h,​1d,​12h) -> прогноз значения элемента данных через 12 часов на основе одного часа днем ранее\\ => forecast(1h,,​10m,​exponential) -> прогноз значения элемента данных через 10 минут на основе данных последнего часа и экспоненциальной функции\\ => forecast(1h,,​2h,​polynomial3,​max) -> прогноз максимального значения элемента данных,​ которое может достичь элемент данных через два часа, на основе данных последнего часа и кубического (третьей степени) полинома\\ \\ Эта функция поддерживается начиная с Zabbix 3.0.0.\\ Смотрите дополнительную информацию о [[:​ru/​manual/​config/​triggers/​prediction|функциях предсказания в триггерах]]. ​ |+^ |Будущее значение,​ макс, мин, дельта или сред элемента данных. ​ |**сек** или **#​кол-во** - максимальный период<​​sup>​​**[[#​​примечание|1]]**</​​sup> ​вычисления в секундах или в количестве собранных значений (начинается с решетки)\\ **сдвиг_времени** (опционально) - см. функцию avg()\\ **время** - горизонт предсказания в секундах\\ **аппроксимация** (опционально) - используемая функция для аппроксимации данных истории\\ \\ Поддерживаемые ''​аппроксимации'':​\\ //linear// - линейная функция\\ //​polynomialN//​ - полином степени N (1 <​nowiki><​=</​nowiki>​ N <​nowiki><​=</​nowiki>​ 6)\\ //​exponential//​ - экспоненциальная функция\\ //​logarithmic//​ - логарифмическая функция\\ //power// - степенная функция\\ \\ Обратите внимание,​ что:\\ //linear// является умолчанием,​ //​polynomial1//​ эквивалент //​linear//​\\ \\ **режим** (опционально) - запрашиваемый вывод\\ \\ Поддерживаемые ''​режимы'':​\\ //value// - значение (по умолчанию)\\ //max// - максимальное\\ //min// - минимальное\\ //delta// - //​max//​-//​min//​\\ //avg// - среднее\\ \\ Обратите внимание:​\\ //value// оценивает значение элемента данных за момент ''​сейчас''​ + ''​время''​\\ //max//, //min//, //delta// и //avg// оценивают значение элемента данных за интервал между ''​сейчас''​ и ''​сейчас''​ + ''​время'' ​ |Поддерживаемые типы значений:​ float, int\\ \\ Если возвращаемое значение больше чем 999999999999.9999 или меньше чем -999999999999.9999,​возвращаемое значение обрезается до 999999999999.9999 или -999999999999.9999 соответственно.\\ \\ Становится не поддерживаемым только,​ если в выражении имеется злоупотребление (ошибочный тип элемента данных,​ некорректные параметры),​ в противном случае возвращает -1 в случае ошибок.\\ \\ Примеры:​\\ => forecast(#​10,,​1h) -> прогноз значения элемента данных через один час на основе последних 10 значений\\ => forecast(1h,,​30m) -> прогноз значения элемента данных через 30 минут на основе данных последнего часа\\ => forecast(1h,​1d,​12h) -> прогноз значения элемента данных через 12 часов на основе одного часа днем ранее\\ => forecast(1h,,​10m,​exponential) -> прогноз значения элемента данных через 10 минут на основе данных последнего часа и экспоненциальной функции\\ => forecast(1h,,​2h,​polynomial3,​max) -> прогноз максимального значения элемента данных,​ которое может достичь элемент данных через два часа, на основе данных последнего часа и кубического (третьей степени) полинома\\ => forecast(#​2,,​-20m) -> оценивает значение элемента данных,​ которое было 20 минут назад на основе двух последних значений (эта функция может быть более точной,​ чем использование last() или prev(), особенно,​ если элемент данных обновляется редко, скажем,​ раз в час)\\ \\ Эта функция поддерживается начиная с Zabbix 3.0.0.\\ Отрицательные значения ''​времени''​ поддерживаются начиная с Zabbix 3.0.6 и 3.2.2.\\ Смотрите дополнительную информацию о [[:​ru/​manual/​config/​triggers/​prediction|функциях предсказания в триггерах]]. ​ |
 ^ |||| ^ ||||
 |**fuzzytime** (сек) ^^^^ |**fuzzytime** (сек) ^^^^
-^ |Проверка,​ синхронизировано ли системное локальное время со временем на Zabbix сервере |**сек** - секунды ​ |Поддерживаемые типы значений:​ float, int\\ \\ Возвращает ​'1' в случае, ​если штамп времени ​из значения элемента данных ​не отличается ​от времени Zabbix сервера ​более чем ​на секунд0 - в противном случае. Обычно используется с system.localtime для проверки,​ что локальное время синхронизировано с локальным временем Zabbix сервера. ​ |+^ |Проверка, ​на сколько отличается значение элемента данных (как штамп ​времени) ​от времени Zabbix сервера. |**сек** - секунды ​ |Поддерживаемые типы значений:​ float, int\\ \\ Возвращает:\\ если ​разница между ​штампом времени значения элемента данных ​и штампом времени Zabbix сервера ​меньше или равна секунд\\ 0 - в противном случае.\\ \\ Обычно используется с system.localtime для проверки,​ что локальное время синхронизировано с локальным временем Zabbix сервера. ​//​Обратите внимание//,​ что элемент данных '​system.localtime'​ должен быть настроен [[:​ru:​manual:​appendix:​items:​activepassive#​пассивные_проверки|пассивной проверкой]]. \\ Также можно использовать с ключем vfs.file.time[/​путь/​к/​файлу,​modify] для проверки,​ что файл не обновлялся длительное время.\\ \\ Пример:​\\ => fuzzytime(60)=0 -> обнаружение проблемы,​ если разница во времени больше 60 секунд ​ |
 ^ |||| ^ ||||
-|**iregexp** (шаблон,<​сек<​nowiki>​|</​nowiki>#​кол-во>​) ​ ^^^^+|**iregexp** (<шаблон>,<​сек<​nowiki>​|</​nowiki>#​кол-во>​) ​ ^^^^
 ^ |Функция нечувствительный к регистру аналог функции regexp(). ​ |смотри regexp() ​ |Поддерживаемые типы значений:​ str, log, text  | ^ |Функция нечувствительный к регистру аналог функции regexp(). ​ |смотри regexp() ​ |Поддерживаемые типы значений:​ str, log, text  |
 ^ |||| ^ ||||
-|**last** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^ +|**last** (<сек<​nowiki>​|</​nowiki>#​кол-во>,<​сдвиг_времени>​) ​ ^^^^ 
-^ |Самое новое значение. |**сек** (игнорируется) или ​ **#​кол-во** - N-ое самое новое значение\\ **сдвиг_времени** (опционально) - смотри avg()  |Поддерживаемые типы значений:​ float, int, str, text, log\\ \\ Обратите внимание,​ что ''#​кол-во''​ здесь работает иначе, чем во многих других функциях.\\ Например:​\\ last() всегда идентичен last(#1)\\ last(#3) - третье самое новое значение (//не// три последних значения)\\ \\ Zabbix не гарантирует точный порядок значений,​ если в истории существуют более двух значений менее чем за секунду..\\ \\ Параметр ''#​кол-во''​ поддерживается начиная с Zabbix 1.6.2.\\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. |+^ |Самое новое значение. |**сек** (игнорируется, равно #1) или ​ **#​кол-во** ​(опционально) ​- N-ое самое новое значение\\ **сдвиг_времени** (опционально) - смотри avg()  |Поддерживаемые типы значений:​ float, int, str, text, log\\ \\ Обратите внимание,​ что ''#​кол-во''​ здесь работает иначе, чем во многих других функциях.\\ Например:​\\ last() всегда идентичен last(#1)\\ last(#3) - третье самое новое значение (//не// три последних значения)\\ \\ Zabbix не гарантирует точный порядок значений,​ если в истории существуют более двух значений менее чем за секунду..\\ \\ Параметр ''#​кол-во''​ поддерживается начиная с Zabbix 1.6.2.\\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. |
 ^ |||| ^ ||||
-|**logeventid** (шаблон) ​ ^^^^ +|**logeventid** (<шаблон>)  ^^^^ 
-^ |Проверка,​ совпадает ли ID события последней записи из журнала указанному регулярному выражению. ​ |**шаблон** - регулярное выражение описывающее требуемый шаблон,​ в формате [[https://​ru.wikipedia.org/​wiki/​Регулярные_выражения#​.D0.A0.D0.B0.D1.81.D1.88.D0.B8.D1.80.D0.B5.D0.BD.D0.BD.D1.8B.D0.B5_.D1.80.D0.B5.D0.B3.D1.83.D0.BB.D1.8F.D1.80.D0.BD.D1.8B.D0.B5_.D0.B2.D1.8B.D1.80.D0.B0.D0.B6.D0.B5.D0.BD.D0.B8.D1.8F_POSIX|расширенных регулярных выражений ​POSIX]].  |Поддерживаемые типы значений:​ log\\ \\ Возвращает:​\\ 0 - не совпадает\\ 1 - совпадает\\ \\ Эта функция поддерживается начиная с Zabbix 1.8.5. ​ |+^ |Проверка,​ совпадает ли ID события последней записи из журнала указанному регулярному выражению. ​ |**шаблон** ​(опционально) ​- регулярное выражение описывающее требуемый шаблон,​ в формате [[https://​ru.wikipedia.org/​wiki/​PCRE|Perl совместимых регулярных выражений]] ​(PCRE).  |Поддерживаемые типы значений:​ log\\ \\ Возвращает:​\\ 0 - не совпадает\\ 1 - совпадает\\ \\ Эта функция поддерживается начиная с Zabbix 1.8.5. ​ |
 ^ |||| ^ ||||
 |**logseverity** ​ ^^^^ |**logseverity** ​ ^^^^
 ^ |Важность события последней записи в журнале. ​ |  |Поддерживаемые типы значений:​ log\\ \\ Возвращает:​\\ 0 - важность по умолчанию\\ N - важность (целое число, полезно для журналов событий Windows: 1 - Уведомление,​ 2 - Предупреждение,​ 4 - Ошибка,​ 7 - Аудит отказов,​ 8 - Аудит успехов,​ 9 - Критическая ошибка,​ 10 - Детали).\\ Zabbix берет важность журнала из поля **Информация** журнала событий Windows. ​ | ^ |Важность события последней записи в журнале. ​ |  |Поддерживаемые типы значений:​ log\\ \\ Возвращает:​\\ 0 - важность по умолчанию\\ N - важность (целое число, полезно для журналов событий Windows: 1 - Уведомление,​ 2 - Предупреждение,​ 4 - Ошибка,​ 7 - Аудит отказов,​ 8 - Аудит успехов,​ 9 - Критическая ошибка,​ 10 - Детали).\\ Zabbix берет важность журнала из поля **Информация** журнала событий Windows. ​ |
 ^ |||| ^ ||||
-|**logsource** (шаблон) ​ ^^^^ +|**logsource** (<шаблон>)  ^^^^ 
-^ |Проверка,​ совпадает ли параметр источнику последней записи в журнале. ​ |**шаблон** - требуемая строка ​ |Поддерживаемые типы значений:​ log\\ \\ Возвращает:​\\ 0 - не совпадает\\ 1 - совпадает\\ Обычно используется для журналов событий Windows. Например,​ %%logsource("​VMware Server"​)%%. ​ |+^ |Проверка,​ соответствует ли регулярному выражению ​источник последней записи в журнале. ​ |**шаблон** ​(опционально) ​- регулярное выражение в виде [[https://​ru.wikipedia.org/​wiki/​PCRE|Perl совместимого ​регулярного выражения]] (PCRE), ​которое описывает необходимый шаблон. ​ ​|Поддерживаемые типы значений:​ log\\ \\ Возвращает:​\\ 0 - не совпадает\\ 1 - совпадает\\ Обычно используется для журналов событий Windows. Например,​ %%logsource("​VMware Server"​)%%. ​ |
 ^ |||| ^ ||||
 |**max** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^ |**max** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^
-^ |Максимальное значение за указанный период вычисления. ​ |**сек** или **#​кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg()  |Поддерживаемые типы значений:​ float, int\\ \\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. ​ |+^ |Максимальное значение за указанный период вычисления. ​ |**сек** или **#​кол-во** - максимальный ​период<​​sup>​​**[[#​​примечание|1]]**</​​sup> ​вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg()  |Поддерживаемые типы значений:​ float, int\\ \\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. ​ |
 ^ |||| ^ ||||
 |**min** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^ |**min** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^
-^ |Минимальное значение за указанный период вычисления. ​ |**сек** или **#​кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg()  |Поддерживаемые типы значений:​ float, int\\ \\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. ​ |+^ |Минимальное значение за указанный период вычисления. ​ |**сек** или **#​кол-во** - максимальный ​период<​​sup>​​**[[#​​примечание|1]]**</​​sup> ​вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg()  |Поддерживаемые типы значений:​ float, int\\ \\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. ​ |
 ^ |||| ^ ||||
 |**nodata** (сек) ​ ^^^^ |**nodata** (сек) ​ ^^^^
-^ |Проверка,​ отсутствия полученных данных. ​ |**сек** - период вычисления в секундах. Период не должен быть меньше 30 секундам. ​ |Поддерживаемые типы значений:​ //​любые//​\\ \\ Результат:​\\ 1 - если нет полученных данных за указанный период времени\\ 0 - в противном случае\\ \\ Обратите внимание,​ эта функция отобразит ошибку в случае,​ если за указанный период в первом параметре:​\\ - нет данных и Zabbix сервер был перезапущен\\ - нет данных и было завершено обслуживание\\ - нет данных и элемент данных был добавлен или активирован снова ​ |+^ |Проверка,​ отсутствия полученных данных. ​ |**сек** - период вычисления в секундах.\\ Период не должен быть меньше 30 секундам, так как процесс синхронизации истории вычисляет эту функцию каждые 30 секунд.\\ \\ nodata(0) запрещена начиная с Zabbix 3.2.2.  |Поддерживаемые типы значений:​ //​любые//​\\ \\ Результат:​\\ 1 - если нет полученных данных за указанный период времени\\ 0 - в противном случае\\ \\ Обратите внимание,​ эта функция отобразит ошибку в случае,​ если за указанный период в первом параметре:​\\ - нет данных и Zabbix сервер был перезапущен\\ - нет данных и было завершено обслуживание\\ - нет данных и элемент данных был добавлен или активирован снова.\\ Ошибки отображаются в колонке //​Инфо//​ в [[:​ru/​manual/​web_interface/​frontend_sections/​configuration/​hosts/​triggers|настройке]] триггеров. ​ |
 ^ |||| ^ ||||
 |**now** ​ ^^^^ |**now** ​ ^^^^
Line 69: Line 69:
 ^ |||| ^ ||||
 |**percentile** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>,​процент) ​ ^^^^ |**percentile** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>,​процент) ​ ^^^^
-^ |P-ый процентиль за период,​ где P (процент) задается третьим параметров. ​ |**сек** или **#​кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **time_shift** (опционально) - см. функцию avg()\\ **процент** - число с плавающей точкой между 0 и 100 (включительно) с точностью до 4 цифр после десятичной точки ​ |Поддерживаемые типы значений:​ float, int\\ \\ Эта функция поддерживается начиная с Zabbix 3.0.0. ​ |+^ |P-ый процентиль за период,​ где P (процент) задается третьим параметров. ​ |**сек** или **#​кол-во** - максимальный ​период<​​sup>​​**[[#​​примечание|1]]**</​​sup> ​вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **time_shift** (опционально) - см. функцию avg()\\ **процент** - число с плавающей точкой между 0 и 100 (включительно) с точностью до 4 цифр после десятичной точки ​ |Поддерживаемые типы значений:​ float, int\\ \\ Эта функция поддерживается начиная с Zabbix 3.0.0. ​ |
 ^ |||| ^ ||||
 |**prev** ​ ^^^^ |**prev** ​ ^^^^
 ^ |Предыдущее значение. ​ |  |Поддерживаемые типы значений:​ float, int, str, text, log\\ \\ Результатом является то же самое, что и last(#​2). ​ | ^ |Предыдущее значение. ​ |  |Поддерживаемые типы значений:​ float, int, str, text, log\\ \\ Результатом является то же самое, что и last(#​2). ​ |
 ^ |||| ^ ||||
-|**regexp** (шаблон,<​сек<​nowiki>​|</​nowiki>#​кол-во>​) ​ ^^^^ +|**regexp** (<шаблон>,<​сек<​nowiki>​|</​nowiki>#​кол-во>​) ​ ^^^^ 
-^ |Проверка,​ совпадает ли последне (самое новое) значение с регулярным выражением. |**шаблон** - регулярное выражение,​ в формате [[https://​ru.wikipedia.org/​wiki/​Регулярные_выражения#​.D0.A0.D0.B0.D1.81.D1.88.D0.B8.D1.80.D0.B5.D0.BD.D0.BD.D1.8B.D0.B5_.D1.80.D0.B5.D0.B3.D1.83.D0.BB.D1.8F.D1.80.D0.BD.D1.8B.D0.B5_.D0.B2.D1.8B.D1.80.D0.B0.D0.B6.D0.B5.D0.BD.D0.B8.D1.8F_POSIX|расширенных регулярных выражений ​POSIX]].\\ **сек** или **#​кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки). В этом случае,​ может быть обработано более одного значения. |Поддерживаемые типы значений:​ str, text, log\\ \\ Результат:​\\ 1 - найдено\\ 0 - в противном случае\\ \\ Эта функция является чувствительной к регистру. |+^ |Проверка,​ совпадает ли последнее (самое новое) значение с регулярным выражением. |**шаблон** ​(опционально) ​- регулярное выражение,​ в формате [[https://​ru.wikipedia.org/​wiki/​PCRE|Perl совместимых регулярных выражений]] ​(PCRE).\\ **сек** или **#​кол-во** - максимальный ​период<​​sup>​​**[[#​​примечание|1]]**</​​sup> ​вычисления в секундах или в последних собранных значениях (начинается с решетки). В этом случае,​ может быть обработано более одного значения. |Поддерживаемые типы значений:​ str, text, log\\ \\ Результат:​\\ 1 - найдено\\ 0 - в противном случае\\ \\ Если обрабатывается более одного значения,​ '​1'​ возвращается,​ если имеется по крайней мере одно совпадающее значение.\\ \\ Эта функция является чувствительной к регистру. |
 ^ |||| ^ ||||
-|**str** (шаблон,<​сек<​nowiki>​|</​nowiki>#​кол-во>​) ​ ^^^^ +|**str** (<шаблон>,<​сек<​nowiki>​|</​nowiki>#​кол-во>​) ​ ^^^^ 
-^ |Поиск строки в последнем (самом новом) значении. |**шаблон** - требуемая строка\\ ​ **сек** или **#​кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки). В этом случае,​ может быть обработано более одного значения. |Поддерживаемые типы значений:​ str, text, log\\ \\ Результат:​\\ 1 - найдено\\ 0 - в противном случае\\ \\ Эта функция является чувствительной к регистру. ​ |+^ |Поиск строки в последнем (самом новом) значении. |**шаблон** ​(опционально) ​- требуемая строка\\ ​ **сек** или **#​кол-во** - максимальный ​период<​​sup>​​**[[#​​примечание|1]]**</​​sup> ​вычисления в секундах или в последних собранных значениях (начинается с решетки). В этом случае,​ может быть обработано более одного значения. |Поддерживаемые типы значений:​ str, text, log\\ \\ Результат:​\\ 1 - найдено\\ 0 - в противном случае\\ \\ Если обрабатывается более одного значения,​ '​1'​ возвращается,​ если имеется по крайней мере одно совпадающее значение.\\ \\ Эта функция является чувствительной к регистру. ​ |
 ^ |||| ^ ||||
-|**strlen** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^ +|**strlen** (<сек<​nowiki>​|</​nowiki>#​кол-во>,<​сдвиг_времени>​) ​ ^^^^ 
-^ |Длина последнего (самого нового) значения в символах (не в байтах). |**сек** (игнорируется) или **#​кол-во** - N-ое самое новое значение\\ **сдвиг_времени** (опционально) - смотри avg()  |Поддерживаемые типы значений:​ str, text, log\\ \\ Обратите внимание,​ что ''#​кол-во''​ здесь работает иначе, чем во многих других функциях.\\ \\ Примеры:​\\ => strlen()(идентично strlen(#1)) -> длина самого значения\\ => strlen(#3) -> длина третьего самого нового значения\\ => strlen(,86400) -> длина самого нового значения днем ранее.\\ \\ Эта функция поддерживается начиная с Zabbix 1.8.4. ​ |+^ |Длина последнего (самого нового) значения в символах (не в байтах). |**сек** (игнорируется, равно #1) или **#​кол-во** ​(опционально) ​- N-ое самое новое значение\\ **сдвиг_времени** (опционально) - смотри avg()  |Поддерживаемые типы значений:​ str, text, log\\ \\ Обратите внимание,​ что ''#​кол-во''​ здесь работает иначе, чем во многих других функциях.\\ \\ Примеры:​\\ => strlen()(идентично strlen(#1)) -> длина самого значения\\ => strlen(#3) -> длина третьего самого нового значения\\ => strlen(,1d) -> длина самого нового значения днем ранее.\\ \\ Эта функция поддерживается начиная с Zabbix 1.8.4. ​ |
 ^ |||| ^ ||||
 |**sum** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^ |**sum** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^
-^ |Сумма собранных значений за указанный период вычисления. |**сек** или **#​кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg() |Поддерживаемые типы значений:​ float, int\\ \\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. ​ |+^ |Сумма собранных значений за указанный период вычисления. |**сек** или **#​кол-во** - максимальный ​период<​​sup>​​**[[#​​примечание|1]]**</​​sup> ​вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg() |Поддерживаемые типы значений:​ float, int\\ \\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. ​ |
 ^ |||| ^ ||||
 |**time** ​ ^^^^ |**time** ​ ^^^^
 ^ |Текущее время в формате ЧЧММСС. ​ |  |Поддерживаемые типы значений:​ //​любые//​\\ \\ Пример возвращаемого значения:​ 123055 ​ | ^ |Текущее время в формате ЧЧММСС. ​ |  |Поддерживаемые типы значений:​ //​любые//​\\ \\ Пример возвращаемого значения:​ 123055 ​ |
 ^ |||| ^ ||||
-|**timeleft** (сек<nowiki>​​|</​nowiki>#​кол-во,<​сдвиг_времени>,​порог,<​аппроксимация>​) ​ ^^^^ +|**timeleft** (сек<​nowiki>​​|</​nowiki>#​кол-во,<​сдвиг_времени>,​порог,<​аппроксимация>​) ​ ^^^^ 
-^ |Требуемое время в секундах элементу данных для достижения заданного порога. ​ |**сек** или **#​кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - см. функцию avg()\\ **порог** - значение,​ которое необходимо достичь\\ **аппроксимация** (опционально) - см. функцию forecast() ​ |Поддерживаемые типы значений:​ float, int\\ \\ Если возвращаемое значение больше чем 999999999999.9999,​ возвращаемое значение обрезается до 999999999999.9999.\\ \\ Возвращает 999999999999.9999,​ если порог нельзя достичь.\\ \\ Становится не поддерживаемым только,​ если в выражении имеется злоупотребление (ошибочный тип элемента данных,​ некорректные параметры),​ в противном случае возвращает -1 в случае ошибок.\\ \\ Примеры:​\\ => timeleft(#​10,,​0) -> время до тех пор, когда значение элемента данных достигнет нуля на основе последних 10 значений\\ => timeleft(1h,,​100) -> время до тех пор, когда значение элемента данных достигнет 100 на основе данных последнего часа\\ => timeleft(1h,​1d,​0) -> время до тех пор, когда значение элемента данных достигнет 0 на основе одного часа днем ранее\\ => timeleft(1h,,​200,​polynomial2) -> время до тех пор, когда значение элемента данных достигнет 200 на основе данных последнего часа и предположения,​ что элемент данных ведет себя как квадратичный (вторая степень) полином\\ \\ Эта функция поддерживается начиная с Zabbix 3.0.0.\\ Смотрите дополнительную информацию о [[:​ru/​manual/​config/​triggers/​prediction|функциях предсказания в триггерах]]. ​ |+^ |Требуемое время в секундах элементу данных для достижения заданного порога. ​ |**сек** или **#​кол-во** - максимальный ​период<​​sup>​​**[[#​​примечание|1]]**</​​sup> ​вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - см. функцию avg()\\ **порог** - значение,​ которое необходимо достичь\\ **аппроксимация** (опционально) - см. функцию forecast() ​ |Поддерживаемые типы значений:​ float, int\\ \\ Если возвращаемое значение больше чем 999999999999.9999,​ возвращаемое значение обрезается до 999999999999.9999.\\ \\ Возвращает 999999999999.9999,​ если порог нельзя достичь.\\ \\ Становится не поддерживаемым только,​ если в выражении имеется злоупотребление (ошибочный тип элемента данных,​ некорректные параметры),​ в противном случае возвращает -1 в случае ошибок.\\ \\ Примеры:​\\ => timeleft(#​10,,​0) -> время до тех пор, когда значение элемента данных достигнет нуля на основе последних 10 значений\\ => timeleft(1h,,​100) -> время до тех пор, когда значение элемента данных достигнет 100 на основе данных последнего часа\\ => timeleft(1h,​1d,​0) -> время до тех пор, когда значение элемента данных достигнет 0 на основе одного часа днем ранее\\ => timeleft(1h,,​200,​polynomial2) -> время до тех пор, когда значение элемента данных достигнет 200 на основе данных последнего часа и предположения,​ что элемент данных ведет себя как квадратичный (вторая степень) полином\\ \\ Эта функция поддерживается начиная с Zabbix 3.0.0.\\ [[ru/​manual/​appendix/​suffixes|Символы единиц измерения]] в параметре ''​​порог''​ поддерживаются начиная с Zabbix 3.0.6 и 3.2.2.\\ Смотрите дополнительную информацию о [[:​ru/​manual/​config/​triggers/​prediction|функциях предсказания в триггерах]]. ​ |
  
-<​note ​important>1) Все функции возвращают только числовые значения. ​Например,​ сравнение строк не поддерживается.\\ 2) Некоторые функции нельзя использовать для нечисловых ​параметров!\\ 3) Строковые аргументы должны быть заключены в двойные кавычки. В противном случае,​ они могут быть неправильно интерпретированы. </​note>​+<​note ​warning>Важные заметки:​\\ **1)** Все функции возвращают только числовые значения. ​Сравнение строк не поддерживается.\\ ​**2)** Некоторые функции нельзя использовать для нечисловых ​значений!\\ **3)** Строковые аргументы должны быть заключены в двойные кавычки. В противном случае,​ они могут быть неправильно интерпретированы.\\ **4)** У всех функций триггеров параметры **сек** и **сдвиг_времени** должны быть целым числом с опциональным [[ru:​manual:​appendix:​suffixes#​суффиксы_времени|суффиксом единицы времени]] и это требование не имеет абсолютно ничего общего с типом данных элемента данных.</​note>​ 
 + 
 +== Примечание ==  
 + 
 +<​sup>​**1**</​sup>​ Функция начинает вычисляться с момента получения первого значения (если не пользуется ''​сдвиг_времени''​ параметр). 
 + 
 +=== Функции и неподдерживаемые элементы данных === 
 + 
 +Начиная с Zabbix 3.2, функции **nodata()**,​ **date()**, **dayofmonth()**,​ **dayofweek()**,​ **now()** и **time()** вычисляются также и для неподдерживаемых элементов данных. Другие функции требуют чтобы элементы данных на которые они ссылаются были поддерживаемом состоянии.