Zabbix Documentation 5.0

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:appendix:triggers:functions

Differences

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

Link to this comparison view

ru:manual:appendix:triggers:functions [2015/12/25 17:11]
dotneft
ru:manual:appendix:triggers:functions [2020/01/06 05:26]
Line 1: Line 1:
-==== - #1 Поддерживаемые функции триггеров ==== 
  
-Здесь перечислены все поддерживаемые функции в [[:​ru/​manual/​config/​triggers/​expression|выражениях триггеров]]:​ 
- 
-^ ФУКНЦИЯ ​ ^^^^ 
-^ ^  **Описания** ​ ^  **Параметры** ​ ^  **Комментарии** ​ ^ 
-|**abschange** ​ ^^^^ 
-^ |Абсолютная разница между последним и предыдущим значениями. | |Поддерживаемые типы значений:​ float, int, str, text, log\\ \\ Например:​\\ (предыдущее значение/​последнее значение=abschange)\\ 1/5=4\\ 3/1=2\\ 0/​-2.5=2.5\\ \\  Результат для строк:​\\ 0 - значения равны\\ 1 - значения различаются ​ | 
-^ |||| 
-|**avg** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^ 
-^ |Среднее значение элемента данных за указанный период времени. |**сек** или **кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - точка вычисления перемещается на указанное количество секунд назад во времени |Поддерживаемые типы значений:​ float, int\\ \\ Примеры:​\\ => avg(#5) -> среднее значение за пять последних значений\\ => avg(3600) -> среднее значение за час\\ => avg(3600,​86400) -> среднее значение за час днем ранее.\\ \\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. Этот параметр очень полезен,​ если требуется сравнить текущее значение усреднения со значением усреднения сдвиг_времени секунд ранее. | 
-^ |||| 
-|**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. | 
-^ |||| 
-|**change** ​ ^^^^ 
-^ |Величина разницы между последним и предыдущим значениями. | |Поддерживаемые типы значений:​ float, int, str, text, log\\ \\ Например:​\\ (предыдущее значение/​последнее значение=изменение)\\ 1/5=+4\\ 3/1=-2\\ 0/​-2.5=-2.5\\ \\ Для строк:​\\ 0 - значения равны\\ 1 - значения различаются ​ | 
-^ |||| 
-|**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, int, str, 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. | 
-^ |||| 
-|**date** ​ ^^^^ 
-^ |Текущая дата в формате ГГГГММДД. ​ |  |Поддерживаемые типы значений:​ //​любые//​\\ \\ Пример результата:​ 20150731 ​  | 
-^ |||| 
-|**dayofmonth** ​ ^^^^ 
-^ |День месяца в диапазоне от 1 до 31.  |  |Поддерживаемые типы значений:​ //​любые//​\\ \\ Эта функция поддерживается начиная с Zabbix 1.8.5. ​ | 
-^ |||| 
-|**dayofweek** ​ ^^^^ 
-^ |День недели в диапазоне от 1 до 7 (Пн - 1, Вс - 7).  |  |Поддерживаемые типы значений:​ //​любые// ​ | 
-^ |||| 
-|**delta** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^ 
-^ |Разницы между максимальным и минимальным значениями за указанный период вычисления ('​max()'​ минус '​min()'​). |**сек** или **#​кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg() |Поддерживаемые типы значений:​ float, int\\ \\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. | 
-^ |||| 
-|**diff** ​ ^^^^ 
-^ |Проверка,​ различаются ли последнее и предыдущее значения. ​ |  |Поддерживаемые типы значений:​ float, int, str, text, log\\ \\ Возвращает:​\\ 1 - последнее и предыдущее значения различаются\\ 0 - в противном случае ​ | 
-^ |||| 
-|**forecast** (sec<​nowiki>​|</​nowiki>#​num,<​time_shift>,​time,<​fit>,<​mode>​) ^^^^ 
-^ |Future value, max, min, delta or avg of the item.  |**sec** or **#num** - evaluation period in seconds or in latest collected values specified (preceded by a hash mark)\\ **time_shift** (optional) - see avg()\\ **time** - forecasting horizon in seconds\\ **fit** (optional) - function used to fit historical data\\ \\ Supported ''​fits'':​\\ //linear// - linear function\\ //​polynomialN//​ - polynomial of degree N (1 <​nowiki><​=</​nowiki>​ N <​nowiki><​=</​nowiki>​ 6)\\ //​exponential//​ - exponential function\\ //​logarithmic//​ - logarithmic function\\ //power// - power function\\ \\ Note that:\\ //linear// is default, //​polynomial1//​ is equivalent to //​linear//​\\ \\ **mode** (optional) - demanded output\\ \\ Supported ''​modes'':​\\ //value// - value (default)\\ //max// - maximum\\ //min// - minimum\\ //delta// - //​max//​-//​min//​\\ //avg// - average\\ \\ Note that:\\ //value// estimates item value at the moment ''​now''​ + ''​time''​\\ //max//, //min//, //delta// and //avg// investigate item value estimate on the interval between ''​now''​ and ''​now''​ + ''​time'' ​ |Supported value types: float, int\\ \\ If value to return is larger than 999999999999.9999 or less than -999999999999.9999,​ return value is cropped to 999999999999.9999 or -999999999999.9999 correspondingly.\\ \\ Becomes not supported only if misused in expression (wrong item type, invalid parameters),​ otherwise returns -1 in case of errors.\\ \\ Examples:\\ => forecast(#​10,,​1h) -> forecast of item value after one hour based on last 10 values\\ => forecast(1h,,​30m) -> forecast of item value after 30 minutes based on last hour data\\ => forecast(1h,​1d,​12h) -> forecast of item after 12 hours based on one hour one day ago\\ => forecast(1h,,​10m,​exponential) -> forecast of item value after 10 minutes based on last hour data and exponential function\\ => forecast(1h,,​2h,​polynomial3,​max) -> forecast of maximum value item can reach in next two hours based on last hour data and cubic (third degree) polynomial\\ \\ This function is supported since Zabbix 3.0.0.\\ See also additional information on [[:​manual/​config/​triggers/​prediction|predictive trigger functions]]. ​ | 
-^ |||| 
-|**fuzzytime** (сек) ^^^^ 
-^ |Проверка,​ синхронизировано ли системное локальное время со временем на Zabbix сервере. ​ |**сек** - секунды ​ |Поддерживаемые типы значений:​ float, int\\ \\ Возвращает '​1'​ в случае,​ если штамп времени из значения элемента данных не отличается от времени Zabbix сервера более чем на N секунд,​ 0 - в противном случае. Обычно используется с system.localtime для проверки,​ что локальное время синхронизировано с локальным временем Zabbix сервера. ​ | 
-^ |||| 
-|**iregexp** (шаблон,<​сек<​nowiki>​|</​nowiki>#​кол-во>​) ​ ^^^^ 
-^ |Функция нечувствительный к регистру аналог функции regexp(). ​ |смотри regexp() ​ |Поддерживаемые типы значений:​ str, log, text  | 
-^ |||| 
-|**last** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^ 
-^ |Самое новое значение. |**сек** (игнорируется) или ​ **#​кол-во** - N-ое самое новое значение\\ **сдвиг_времени** (опционально) - смотри avg()  |Поддерживаемые типы значений:​ float, int, str, text, log\\ \\ Обратите внимание,​ что ''#​кол-во''​ здесь работает иначе, чем во многих других функциях.\\ Например:​\\ last() всегда идентичен last(#1)\\ last(#3) - третье самое новое значение (//не// три последних значения)\\ \\ Zabbix не гарантирует точный порядок значений,​ если в истории существуют более двух значений менее чем за секунду..\\ \\ Параметр ''#​кол-во''​ поддерживается начиная с Zabbix 1.6.2.\\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. | 
-^ |||| 
-|**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. ​ | 
-^ |||| 
-|**logseverity** ​ ^^^^ 
-^ |Важность события последней записи в журнале. ​ |  |Поддерживаемые типы значений:​ log\\ \\ Возвращает:​\\ 0 - важность по умолчанию\\ N - важность (целое число, полезно для журналов событий Windows: 1 - Уведомление,​ 2 - Предупреждение,​ 4 - Ошибка,​ 7 - Аудит отказов,​ 8 - Аудит успехов,​ 9 - Критическая ошибка,​ 10 - Детали).\\ Zabbix берет важность журнала из поля **Информация** журнала событий Windows. ​ | 
-^ |||| 
-|**logsource** (шаблон) ​ ^^^^ 
-^ |Проверка,​ совпадает ли параметр источнику последней записи в журнале. ​ |**шаблон** - требуемая строка ​ |Поддерживаемые типы значений:​ log\\ \\ Возвращает:​\\ 0 - не совпадает\\ 1 - совпадает\\ Обычно используется для журналов событий Windows. Например,​ %%logsource("​VMware Server"​)%%. ​ | 
-^ |||| 
-|**max** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^ 
-^ |Максимальное значение за указанный период вычисления. ​ |**сек** или **#​кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg()  |Поддерживаемые типы значений:​ float, int\\ \\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. ​ | 
-^ |||| 
-|**min** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^ 
-^ |Минимальное значение за указанный период вычисления. ​ |**сек** или **#​кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg()  |Поддерживаемые типы значений:​ float, int\\ \\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. ​ | 
-^ |||| 
-|**nodata** (сек) ​ ^^^^ 
-^ |Проверка,​ отсутствия полученных данных. ​ |**сек** - период вычисления в секундах. Период не должен быть меньше 30 секундам. ​ |Поддерживаемые типы значений:​ //​любые//​\\ \\ Результат:​\\ 1 - если нет полученных данных за указанный период времени\\ 0 - в противном случае\\ \\ Обратите внимание,​ эта функция отобразит ошибку в случае,​ если за указанный период в первом параметре:​\\ - нет данных и Zabbix сервер был перезапущен\\ - нет данных и было завершено обслуживание\\ - нет данных и элемент данных был добавлен или активирован снова ​ | 
-^ |||| 
-|**now** ​ ^^^^ 
-^ |Количество секунд начиная с Epoch (00:00:00 UTC, 1 Января,​ 1970). ​ |  |Поддерживаемые типы значений:​ //​любые// ​ | 
-^ |||| 
-|**percentile** (sec<​nowiki>​|</​nowiki>#​num,<​time_shift>,​percentage) ​ ^^^^ 
-^ |P-th percentile of a period, where P (percentage) is specified by the third parameter. ​ |**sec** or **#num** - evaluation period in seconds or in latest collected values (preceded by a hash mark)\\ **time_shift** (optional) - see avg()\\ **percentage** - a floating-point number between 0 and 100 (inclusive) with up to 4 digits after the decimal point  |Supported value types: float, int\\ \\ This function is supported since Zabbix 3.0.0. ​ | 
-^ |||| 
-|**prev** ​ ^^^^ 
-^ |Предыдущее значение. ​ |  |Поддерживаемые типы значений:​ float, int, str, text, log\\ \\ Результатом является то же самое, что и last(#​2). ​ | 
-^ |||| 
-|**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 - в противном случае\\ \\ Эта функция является чувствительной к регистру. | 
-^ |||| 
-|**str** (шаблон,<​сек<​nowiki>​|</​nowiki>#​кол-во>​) ​ ^^^^ 
-^ |Поиск строки в последнем (самом новом) значении. |**шаблон** - требуемая строка\\ ​ **сек** или **#​кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки). В этом случае,​ может быть обработано более одного значения. |Поддерживаемые типы значений:​ str, text, log\\ \\ Результат:​\\ 1 - найдено\\ 0 - в противном случае\\ \\ Эта функция является чувствительной к регистру. ​ | 
-^ |||| 
-|**strlen** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^ 
-^ |Длина последнего (самого нового) значения в символах (не в байтах). |**сек** (игнорируется) или **#​кол-во** - N-ое самое новое значение\\ **сдвиг_времени** (опционально) - смотри avg()  |Поддерживаемые типы значений:​ str, text, log\\ \\ Обратите внимание,​ что ''#​кол-во''​ здесь работает иначе, чем во многих других функциях.\\ \\ Примеры:​\\ => strlen()(идентично strlen(#1)) -> длина самого значения\\ => strlen(#3) -> длина третьего самого нового значения\\ => strlen(,​86400) -> длина самого нового значения днем ранее.\\ \\ Эта функция поддерживается начиная с Zabbix 1.8.4. ​ | 
-^ |||| 
-|**sum** (сек<​nowiki>​|</​nowiki>#​кол-во,<​сдвиг_времени>​) ​ ^^^^ 
-^ |Сумма собранных значений за указанный период вычисления. |**сек** или **#​кол-во** - период вычисления в секундах или в последних собранных значениях (начинается с решетки)\\ **сдвиг_времени** (опционально) - смотри avg() |Поддерживаемые типы значений:​ float, int\\ \\ Параметр ''​сдвиг_времени''​ поддерживается начиная с Zabbix 1.8.2. ​ | 
-^ |||| 
-|**time** ​ ^^^^ 
-^ |Текущее время в формате ЧЧММСС. ​ |  |Поддерживаемые типы значений:​ //​любые//​\\ \\ Пример возвращаемого значения:​ 123055 ​ | 
-^ |||| 
-|**timeleft (sec|#​num,<​time_shift>,​threshold,<​fit>​)** ​ ^^^^ 
-^ |Time in seconds needed for an item to reach a specified threshold. ​ |**sec** or **#num** - evaluation period in seconds or in latest collected values specified (preceded by a hash mark)\\ **time_shift** (optional) - see avg()\\ **threshold** - value to reach\\ **fit** (optional) - see forecast() ​ |Supported value types: float, int\\ \\ If value to return is larger than 999999999999.9999,​ return value is cropped to 999999999999.9999.\\ \\ Returns 999999999999.9999 if threshold cannot be reached.\\ \\ Becomes not supported only if misused in expression (wrong item type, invalid parameters),​ otherwise returns -1 in case of errors.\\ \\ Examples:\\ => timeleft(#​10,,​0) -> time until item value reaches zero based on last 10 values\\ => timeleft(1h,,​100) -> time until item value reaches 100 based on last hour data\\ => timeleft(1h,​1d,​0) -> time until item value reaches 0 based on one hour one day ago\\ => timeleft(1h,,​200,​polynomial2) -> time until item reaches 200 based on last hour data and assumption that item behaves like quadratic (second degree) polynomial\\ \\ This function is supported since Zabbix 3.0.0.\\ See also additional information on [[:​manual/​config/​triggers/​prediction|predictive trigger functions]]. ​ | 
- 
-<note important>​1) Все функции возвращают только числовые значения. Например,​ сравнение строк не поддерживается.\\ 2) Некоторые функции нельзя использовать для нечисловых параметров!\\ 3) Строковые аргументы должны быть заключены в двойные кавычки. В противном случае,​ они могут быть неправильно интерпретированы. </​note>​