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 (сек|#кол-во,<шаблон>,<оператор>,<сдвиг_времени>)
Количество собранных значений за указанный период вычисления. сек или кол-во - период вычисления в секундах или в последних собранных значениях (начинается с решетки)
шаблон (опционально) - требуемый шаблон (целые числа - точное совпадение

оператор (опционально)

Поддерживаемые операторы: 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, integer, string, text, log
Элементы данных с плавающей точкой совпадают с точностью до 0.000001.

При наличии band третьим параметром, второй параметр можно указывать двумя числами, разделенными с помощью '/': количество_для_сравнения/маска. count() вычисляет "побитовое И", используя значение и маску, и сравнивает результат с количеством_для_сравнения. Если результат "побитового И" равен количеству_для_сравнения, значение засчитывается.
Если количество_для_сравнения и маска равны, то необходимо указать только параметр маска (без '/').

Примеры:
=> count(600) → количество значений за последние 10 минут
=> count(10m,"error",eq) → количество значений за последние 10 минут, которые равны 'error'
=> 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 - в противном случае
fuzzytime (сек)
Проверка, на сколько отличается штамп времени значения элемента данных от времени Zabbix сервера. сек - секунды Поддерживаемые типы значений: float, int

Возвращает:
0 - если разница между штампом времени значения элемента данных и штампом времени Zabbix сервера больше T секунд
1 - в противном случае.

Обычно используется с system.localtime для проверки, что локальное время синхронизировано с локальным временем Zabbix сервера.
Также можно использовать с ключем vfs.file.time[/путь/к/файлу,modify] для проверки, что файл не обновлялся длительное время.

Пример:
=> fuzzytime(60)=0 → обнаружение проблемы, если разница во времени больше 60 секунд
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). Поддерживаемые типы значений: любые
prev
Предыдущее значение. Поддерживаемые типы значений: float, int, str, text, log

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

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

Если обрабатывается более одного значения, тогда '1' возвращается, если имеется по крайней мере одно совпавшее значение.

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

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

Если обрабатывается более одного значения, тогда '1' возвращается, если имеется по крайней мере одно совпавшее значение.

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