Zabbix Documentation 3.4

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

User Tools

Site Tools

This translation is older than the original page and might be outdated. See what has changed.

Sidebar

ru:manual:appendix:triggers:functions

This is an old revision of the document!


1 Поддерживаемые функции триггеров

Здесь перечислены все поддерживаемые функции в выражениях триггеров:

ФУКНЦИЯ
Описания Параметры Комментарии
abschange
Абсолютная разница между последним и предыдущим значениями. Поддерживаемые типы значений: float, int, str, text, log

Например:
(предыдущее значение/последнее значение=abschange)
1/5=4
3/1=2
0/-2.5=2.5

Результат для строк:
0 - значения равны
1 - значения различаются
avg (сек|#кол-во,<сдвиг_времени>)
Среднее значение элемента данных за указанный период времени. сек или кол-во - период вычисления в секундах или в последних собранных значениях (начинается с решетки)
сдвиг_времени (опционально) - точка вычисления перемещается на указанное количество секунд назад во времени
Поддерживаемые типы значений: float, int

Примеры:
⇒ avg(#5) → среднее значение за пять последних значений
⇒ avg(3600) → среднее значение за час
⇒ avg(3600,86400) → среднее значение за час днем ранее.

Параметр сдвиг_времени поддерживается начиная с Zabbix 1.8.2. Этот параметр очень полезен, если требуется сравнить текущее значение усреднения со значением усреднения сдвиг_времени секунд ранее.
band (сек|#кол-во,маска,<сдвиг_времени>)
Значение “побитового И” от значения элемента данных и маски. сек (игнорируется) или кол-во - 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 (сек|#кол-во,<шаблон>,<оператор>,<сдвиг_времени>)
Количество собранных значений за указанный период вычисления. сек или кол-во - период вычисления в секундах или в последних собранных значениях (начинается с решетки)
шаблон (опционально) - требуемый шаблон (целые числа - точное совпадение; числа с плавающей точкой - совпадение с точностью до 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 (сек|#кол-во,<сдвиг_времени>)
Разницы между максимальным и минимальным значениями за указанный период вычисления ('max()' минус 'min()'). сек или #кол-во - период вычисления в секундах или в последних собранных значениях (начинается с решетки)
сдвиг_времени (опционально) - смотри avg()
Поддерживаемые типы значений: float, int

Параметр сдвиг_времени поддерживается начиная с Zabbix 1.8.2.
diff
Проверка, различаются ли последнее и предыдущее значения. Поддерживаемые типы значений: float, int, str, text, log

Возвращает:
1 - последнее и предыдущее значения различаются
0 - в противном случае
forecast (сек|#кол-во,<сдвиг_времени>,время,<аппроксимация>,<режим>)
Будущее значение, макс, мин, дельта или сред элемента данных. сек или #кол-во - указывается период вычисления в секундах или в количестве собранных значений (начинается с решетки)
сдвиг_времени (опционально) - см. функцию avg()
время - горизон предсказания в секундах
аппроксимация (опционально) - используемая функция для аппроксимации данных истории

Поддерживаемые аппроксимации:
linear - линейная функция
polynomialN - полином степени N (1 <= N <= 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.
Смотрите дополнительную информацию о функциях предсказания в триггерах.
fuzzytime (сек)
Проверка, синхронизировано ли системное локальное время со временем на Zabbix сервере. сек - секунды Поддерживаемые типы значений: float, int

Возвращает '1' в случае, если штамп времени из значения элемента данных не отличается от времени Zabbix сервера более чем на N секунд, 0 - в противном случае. Обычно используется с system.localtime для проверки, что локальное время синхронизировано с локальным временем Zabbix сервера.
iregexp (шаблон,<сек|#кол-во>)
Функция нечувствительный к регистру аналог функции regexp(). смотри regexp() Поддерживаемые типы значений: str, log, text
last (сек|#кол-во,<сдвиг_времени>)
Самое новое значение. сек (игнорируется) или #кол-во - N-ое самое новое значение
сдвиг_времени (опционально) - смотри avg()
Поддерживаемые типы значений: float, int, str, text, log

Обратите внимание, что #кол-во здесь работает иначе, чем во многих других функциях.
Например:
last() всегда идентичен last(#1)
last(#3) - третье самое новое значение (не три последних значения)

Zabbix не гарантирует точный порядок значений, если в истории существуют более двух значений менее чем за секунду..

Параметр #кол-во поддерживается начиная с Zabbix 1.6.2.
Параметр сдвиг_времени поддерживается начиная с Zabbix 1.8.2.
logeventid (шаблон)
Проверка, совпадает ли ID события последней записи из журнала указанному регулярному выражению. шаблон - регулярное выражение описывающее требуемый шаблон, в формате расширенных регулярных выражений 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 (сек|#кол-во,<сдвиг_времени>)
Максимальное значение за указанный период вычисления. сек или #кол-во - период вычисления в секундах или в последних собранных значениях (начинается с решетки)
сдвиг_времени (опционально) - смотри avg()
Поддерживаемые типы значений: float, int

Параметр сдвиг_времени поддерживается начиная с Zabbix 1.8.2.
min (сек|#кол-во,<сдвиг_времени>)
Минимальное значение за указанный период вычисления. сек или #кол-во - период вычисления в секундах или в последних собранных значениях (начинается с решетки)
сдвиг_времени (опционально) - смотри avg()
Поддерживаемые типы значений: float, int

Параметр сдвиг_времени поддерживается начиная с Zabbix 1.8.2.
nodata (сек)
Проверка, отсутствия полученных данных. сек - период вычисления в секундах. Период не должен быть меньше 30 секундам. Поддерживаемые типы значений: любые

Результат:
1 - если нет полученных данных за указанный период времени
0 - в противном случае

Обратите внимание, эта функция отобразит ошибку в случае, если за указанный период в первом параметре:
- нет данных и Zabbix сервер был перезапущен
- нет данных и было завершено обслуживание
- нет данных и элемент данных был добавлен или активирован снова
now
Количество секунд начиная с Epoch (00:00:00 UTC, 1 Января, 1970). Поддерживаемые типы значений: любые
percentile (сек|#кол-во,<сдвиг_времени>,процент)
P-ый процентиль за период, где P (процент) задается третьим параметров. сек или #кол-во - период вычисления в секундах или в последних собранных значениях (начинается с решетки)
time_shift (опционально) - см. функцию avg()
процент - число с плавающей точкой между 0 и 100 (включительно) с точностью до 4 цифр после десятичной точки
Поддерживаемые типы значений: float, int

Эта функция поддерживается начиная с Zabbix 3.0.0.
prev
Предыдущее значение. Поддерживаемые типы значений: float, int, str, text, log

Результатом является то же самое, что и last(#2).
regexp (шаблон,<сек|#кол-во>)
Проверка, совпадает ли последне (самое новое) значение с регулярным выражением. шаблон - регулярное выражение, в формате расширенных регулярных выражений POSIX.
сек или #кол-во - период вычисления в секундах или в последних собранных значениях (начинается с решетки). В этом случае, может быть обработано более одного значения.
Поддерживаемые типы значений: str, text, log

Результат:
1 - найдено
0 - в противном случае

Эта функция является чувствительной к регистру.
str (шаблон,<сек|#кол-во>)
Поиск строки в последнем (самом новом) значении. шаблон - требуемая строка
сек или #кол-во - период вычисления в секундах или в последних собранных значениях (начинается с решетки). В этом случае, может быть обработано более одного значения.
Поддерживаемые типы значений: str, text, log

Результат:
1 - найдено
0 - в противном случае

Эта функция является чувствительной к регистру.
strlen (сек|#кол-во,<сдвиг_времени>)
Длина последнего (самого нового) значения в символах (не в байтах). сек (игнорируется) или #кол-во - N-ое самое новое значение
сдвиг_времени (опционально) - смотри avg()
Поддерживаемые типы значений: str, text, log

Обратите внимание, что #кол-во здесь работает иначе, чем во многих других функциях.

Примеры:
⇒ strlen()(идентично strlen(#1)) → длина самого значения
⇒ strlen(#3) → длина третьего самого нового значения
⇒ strlen(,86400) → длина самого нового значения днем ранее.

Эта функция поддерживается начиная с Zabbix 1.8.4.
sum (сек|#кол-во,<сдвиг_времени>)
Сумма собранных значений за указанный период вычисления. сек или #кол-во - период вычисления в секундах или в последних собранных значениях (начинается с решетки)
сдвиг_времени (опционально) - смотри avg()
Поддерживаемые типы значений: float, int

Параметр сдвиг_времени поддерживается начиная с Zabbix 1.8.2.
time
Текущее время в формате ЧЧММСС. Поддерживаемые типы значений: любые

Пример возвращаемого значения: 123055
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.
Смотрите дополнительную информацию о функциях предсказания в триггерах.
1) Все функции возвращают только числовые значения. Например, сравнение строк не поддерживается.
2) Некоторые функции нельзя использовать для нечисловых параметров!
3) Строковые аргументы должны быть заключены в двойные кавычки. В противном случае, они могут быть неправильно интерпретированы.