Все перечисленные здесь функции поддерживаются в:
Некоторые общие замечания о параметрах функций:
<
>
/узел_сети/ключ
и (сек|#число)<:сдвиг_времени>
никогда не должны заключаться в кавычки/узел_сети/ключ
является общим обязательным первым параметром для функций, ссылающихся на историю элемента данных узла сети(сек|#число)<:сдвиг_времени>
является общим вторым параметром для функций, ссылающихся на историю элемента данных узла сети, где:
ФУНКЦИЯ | ||
---|---|---|
Описание | Параметры, специфичные для функции | Комментарии |
change (/узел_сети/ключ) | ||
Величина разницы между последним и предыдущим значениями. | Поддерживаемые типы значений: float, int, str, text, log Для строк возвращается: 0 — значения равны 1 — значения отличаются Пример: => change(/узел_сети/ключ)>10 Разница между числовыми значениями будет вычисляться, как показано на примере следующих значений («предыдущее» и «последнее» значение = разница): «1» и «5» = +4 «3» и «1» = -2 «0» и «-2.5» = -2.5 Смотрите также: abs для сравнения |
|
changecount (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>,<режим>) | ||
Количество изменений между соседними значениями за определённый период вычисления. | Смотрите общие параметры. режим (опционально; должен быть в двойных кавычках) Поддерживаются режимы :all — считать все изменения (по умолчанию) dec — считать убывания значений inc — считать возрастания значений |
Поддерживаемые типы значений: float, int, str, text, log Для нечисловых типов значений параметр режим игнорируется. Примеры: => changecount(/узел_сети/ключ, 1w) → количество изменений значения за последнюю неделю до текущего момента => changecount(/узел_сети/ключ,#10,"inc") → количество возрастаний значений (относительно соседнего значения) среди последних 10 значений => changecount(/узел_сети/ключ,24h,"dec") → количество убываний значений (относительно соседнего значения) за последние 24 часа до текущего момента |
count (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>,<оператор>,<шаблон>) | ||
Количество значений за период вычисления. | Смотрите общие параметры. оператор (опционально; должен быть в двойных кавычках) Поддерживаются операторы :eq — равно (по умолчанию для integer и float) ne — не равно gt — больше, чем ge — больше или равно lt — меньше, чем le — меньше или равно like (по умолчанию для элементов данных символ, текст и журнал (лог)) — содержит подстроку шаблона (чувствительно к регистру) bitand — побитовое И regexp — чувствительное к регистру соответствие регулярному выражению, данному в шаблоне iregexp — нечувствительное к регистру соответствие регулярному выражению, данному в шаблоне Примечание: eq (по умолчанию), ne, gt, ge, lt, le, band, regexp, iregexp поддерживаются для целочисленных элементов данных eq (по умолчанию), ne, gt, ge, lt, le, regexp, iregexp поддерживаются для элементов данных с плавающей точкой like (по умолчанию), eq, ne, regexp, iregexp поддерживаются для элементов данных символ, текст и журнал (лог) шаблон (опционально) — искомый шаблон (строковые аргументы должны быть в двойных кавычках) |
Поддерживаемые типы значений: float, integer, string, text, log Элементы данных с плавающей точкой совпадают с точностью 2.22e-16; если база данных не обновлена, то точность составляет 0.000001. Если третий параметр bitand, то четвёртый параметр шаблон может быть указан как два числа, разделённых косой чертой («/»): число_для_сравнения/маска. count() вычисляет «побитовое И» из значения и маски и сравнивает результат с числом_для_сравнения. Если результат «побитового И» равен числу_для_сравнения, то значение считается.Если число_для_сравнения и маска равны, требуется указывать только маску (без «/»). Если третий параметр regexp или iregexp, то четвёртый параметр шаблон может быть обычным или глобальным (начинающимся с «@») регулярным выражением. В случае глобальных регулярных выражений чувствительность к регистру наследуется из настроек глобального регулярного выражения. При проверке соответствия регулярному выражению, значения с плавающей точкой всегда будут представлены с 4 цифрами после десятичной точки («.»). Также обратите внимение, что для больших чисел различие между десятичным (хранящимся в базе данных) и двоичным (используемом сервером Zabbix) представлениями может повлиять на 4-ю десятичную цифру.Примеры: => count(/узел_сети/ключ,10m) → количество значений за последние 10 минут до текущего момента => count(/узел_сети/ключy,10m,"like","error") → количество значений за последние 10 минут до текущего момента, которые содержат «error» => count(/узел_сети/ключ,10m,,12) → количество значений за последние 10 минут до текущего момента, которые равны «12» => count(/узел_сети/ключ,10m,"gt",12) → количество значений за последние 10 минут до текущего момента, превышающих «12» => count(/узел_сети/ключ,#10,"gt",12) → количество значений среди 10 последних значений до текущего момента, которые больше чем «12» => count(/узел_сети/ключ,10m:now-1d,"gt",12) → количество значений за период между (24 часа и 10 минут назад) и (24 часа назад) от текущего момента, которые превышают «12» => count(/узел_сети/ключ,10m,"bitand","6/7") → количество значений за последние 10 минут до текущего момента, у которых в двоичном представлении последние три значащих бита равны «110». => count(/узел_сети/ключ,10m:now-1d) → количество значений за период между (24 часа и 10 минут назад) и (24 часа назад) от текущего момента |
countunique (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>,<оператор>,<шаблон>) | ||
Количество уникальных значений за определённый период вычисления. | Смотрите общие параметры. оператор (опционально; должен быть в двойных кавычках) Поддерживаются операторы :eq — равно (по умолчанию для integer и float) ne — не равно gt — больше, чем ge — больше или равно lt — меньше, чем le — меньше или равно like (по умолчанию для string, text и log) — значение содержит подстроку, заданную в шаблоне (с учётом регистра)bitand — побитовое И regexp — чувствительное к регистру соответствие регулярному выражению, данному в шаблоне iregexp — нечувствительное к регистру соответствие регулярному выражению, данному в шаблоне Примечание: eq (по умолчанию), ne, gt, ge, lt, le, band, regexp, iregexp поддерживаются для целочисленных элементов данных eq (default), ne, gt, ge, lt, le, regexp, iregexp поддерживаются для элементов данных с плавающей точкой like (default), eq, ne, regexp, iregexp поддерживаются для элементов данных символ, текст и журнал (лог) шаблон (опционально) — искомый шаблон (строковые аргументы должны быть в двойных кавычках) |
Поддерживаемые типы значений: float, integer, string, text, log Элементы данных с плавающей точкой совпадают с точностью 2.22e-16; если база данных не обновлена, то точность составляет 0.000001. Если третий параметр bitand, то четвёртый параметр шаблон может быть указан как два числа, разделённых косой чертой («/»): число_для_сравнения/маска. countunique() вычисляет «побитовое И» из значения и маски и сравнивает результат с числом_для_сравнения. Если результат «побитового И» равен числу_для_сравнения, то значение считается.Если число_для_сравнения и маска равны, требуется указывать только маску (без «/»). Если третий параметр regexp или iregexp, то четвёртый параметр шаблон может быть обычным или глобальным (начинающимся с «@») регулярным выражением. В случае глобальных регулярных выражений чувствительность к регистру наследуется из настроек глобального регулярного выражения. При проверке соответствия регулярному выражению, значения с плавающей точкой всегда будут представлены с 4 цифрами после десятичной точки («.»). Также обратите внимение, что для больших чисел различие между десятичным (хранящимся в базе данных) и двоичным (используемом сервером Zabbix) представлениями может повлиять на 4-ю десятичную цифру.Примеры: => countunique(/узел_сети/ключ,10m) → количество уникальных значений за последние 10 минут до текущего момента => countunique(/узел_сети/ключ,10m,"like","error") → количество уникальных значений за последние 10 минут до текущего момента, которые содержат «error» => countunique(/узел_сети/ключ,10m,"gt",12) → количество уникальных значений за последние 10 минут до текущего момента, превышающих «12» => countunique(/узел_сети/ключ,#10,"gt",12) → количество уникальных значений среди 10 последних значений до текущего момента, которые больше чем «12» => countunique(/узел_сети/ключ,10m:now-1d,"gt",12) → количество уникальных значений за период между (24 часа и 10 минут назад) и (24 часа назад) от текущего момента, которые превышают «12» => countunique(/узел_сети/ключ,10m,"bitand","6/7") → количество уникальных значений за последние 10 минут до текущего момента, у которых в двоичном представлении последние три значащих бита равны «110». => countunique(/узел_сети/ключ,10m:now-1d) → количество уникальных значений за период между (24 часа и 10 минут назад) и (24 часа назад) от текущего момента |
find (/узел_сети/ключ,<(сек|#число)<:сдвиг_времени>>,<оператор>,<шаблон>) | ||
Поиск соответствующего значения. | Смотрите общие параметры. сек or #число (опционально) — если не указано, то по умолчанию проверяется последнее значение оператор (опционально; должен быть заключён в двойные кавычки) Поддерживаются операторы :eq — равно (по умолчанию для integer и float) ne — не равно gt — больше, чем ge — больше или равно lt — меньше, чем le — меньше или равно like (по умолчанию для string, text и log) — значение содержит подстроку, заданную в шаблоне (с учётом регистра)bitand — побитовое И regexp — чувствительное к регистру соответствие регулярному выражению, данному в шаблоне iregexp — нечувствительное к регистру соответствие регулярному выражению, данному в шаблоне Примечание: eq (по умолчанию), ne, gt, ge, lt, le, band, regexp, iregexp поддерживаются для целочисленных элементов данных eq (по умолчанию), ne, gt, ge, lt, le, regexp, iregexp поддерживаются для элементов данных с плавающей точкой like (по умолчанию), eq, ne, regexp, iregexp поддерживаются для элементов данных символ, текст и журнал (лог) шаблон — искомый шаблон (строковые аргументы должны быть в двойных кавычках); регулярное выражение Perl Compatible Regular Expression (PCRE) если оператор — regexp или iregexp. |
Поддерживаемые типы значений: float, int, str, text, log Возвращает: 1 — найдено 0 — в противном случае Если обрабатывается более одного значения, «1» возвращается, если имеется по крайней мере одно совпадающее значение. С третьим параметром regexp или iregexp, четвёртый параметр шаблон может быть обычным или глобальным (начинающимся с «@») регулярным выражением. В случае глобальных регулярных выражений чувствительность к регистру наследуется из настроек глобального регулярного выражения.Пример: => find(/узел_сети/ключ,10m,"like","error") → найти значение, содержащее «error» за последние 10 минут до текущего момента |
first (/узел_сети/ключ,сек<:сдвиг_времени>) | ||
Первое (самое старое) значение за указанный период вычисления. | Смотрите общие параметры. | Поддерживаемые типы значений: float, int, str, text, log Пример: => first(/узел_сети/ключ,1h) → извлечь самое старое значение за последний час вплоть до текущего момента Смотрите также last(). |
fuzzytime (/узел_сети/ключ,сек) | ||
Проверка того, насколько время пассивного агента отличается от времени Zabbix сервера/прокси. | Смотрите общие параметры. | Поддерживаемые типы значений: float, int Возвращает: 1 — если разница между значением пассивного элемента данных (как штампа времени) и штампом времени Zabbix сервера/прокси (временем получения значения) меньше или равна сек секунд0 — в противном случае Обычно используется с «system.localtime» для проверки, что локальное время синхронизировано с локальным временем Zabbix сервера. Обратите внимание, что «system.localtime» должно быть настроено как пассивная проверка. Также можно использовать с ключом vfs.file.time[/путь/файл,modify] для проверки, что файл не обновлялся длительное время. Пример: => fuzzytime(/узел_сети/ключ,60s)=0 → обнаружение проблемы, если разница во времени превышает 60 секунд Эту функцию не рекомендуется использовать в сложных триггерных выражениях (с участием нескольких элементов данных), поскольку это может привести к непредвиденным результатам (разница по времени будет считаться по наиболее свежей метрике), например, в таком: fuzzytime(/узел_сети/system.localtime,60s)=0 or last(/узел_сети/trap)<>0 |
last (/узел_сети/ключ,<#число<:сдвиг_времени>>) | ||
Самое новое значение. | Смотрите общие параметры. #число (опционально) — N-ое значение из самых новых |
Поддерживаемые типы значений: float, int, str, text, log Обратите внимание, что #число (с решёткой, #N) здесь работает иначе, чем во многих других функциях. Например: last(/узел_сети/ключ) всегда идентичен last(/узел_сети/ключ,#1) last(/узел_сети/ключ,#3) — третье из самых новых значение (не три последних значения) Zabbix не гарантирует точный порядок значений, если в истории существует более двух значений за одну секунду. Пример: => last(/узел_сети/ключ) → извлечь последнее значение => last(/узел_сети/ключ,#2) → извлечь предыдущее значение => last(/узел_сети/ключ,#1) <> last(/узел_сети/ключ,#2) → последнее значение отличается от предыдущего Смотрите также first(). |
logeventid (/узел_сети/ключ,<#число<:сдвиг_времени>>,<шаблон>) | ||
Проверка, соответствует ли указанному регулярному выражению идентификатор события последней записи из журнала. | Смотрите общие параметры. #число (опционально) — N-ое из наиболее недавних значений шаблон (опционально) — регулярное выражение, описывающее нужный шаблон, в формате Perl Compatible Regular Expression (PCRE) (строковые аргументы должны быть заключены в двойные кавычки). |
Поддерживаемые типы значений: log Возвращает: 0 — нет соответствия 1 — соответствует |
logseverity (/узел_сети/ключ,<#число<:сдвиг_времени>>) | ||
Важность события последней записи в журнале. | Смотрите общие параметры. #число (опционально) — N-ое из наиболее недавних значений |
Поддерживаемые типы значений: log Возвращает: 0 — важность по умолчанию N — важность (целое число, полезно для журналов событий Windows: 1 — Уведомление, 2 — Предупреждение, 4 — Ошибка, 7 — Аудит отказов, 8 — Аудит успехов, 9 — Критическая ошибка, 10 — Детали). Zabbix берёт важность журнала из поля Информация журнала событий Windows. |
logsource (/узел_сети/ключ,<#число<:сдвиг_времени>>,<шаблон>) | ||
Проверка, соответствует ли регулярному выражению источник последней записи в журнале. | Смотрите общие параметры. #число (опционально) — N-ое из наиболее недавних значений шаблон (опционально) — регулярное выражение, описывающее нужный шаблон, в формате Perl Compatible Regular Expression (PCRE) (строковые аргументы должны быть заключены в двойные кавычки). |
Поддерживаемые типы значений: log Возвращает: 0 — нет соответствия 1 — соответствует Обычно используется для журналов событий Windows. Например, logsource("VMware Server"). |
monodec (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>,<режим>) | ||
Проверка наличия монотонного убывания значений. | Смотрите общие параметры. режим (должен быть в двойных кавычках) — weak (каждое значение меньше или равно предыдущему; по умолчанию) или strict (каждое значение строго уменьшается) |
Поддерживаемые типы значений: int Возвращает 1, если все элементы в течение указанного периода времени непрерывно уменьшаются, 0 в противном случае. Пример: => monodec(/Host1/system.swap.size[all,free],60s) + monodec(/Host2/system.swap.size[all,free],60s) + monodec(/Host3/system.swap.size[all,free],60s) — посчитать, на каком количестве узлов сети было уменьшение свободного места в области подкачки |
monoinc (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>,<режим>) | ||
Проверка наличия монотонного возрастания значений. | Смотрите общие параметры. режим (должен быть в двойных кавычках) — weak (каждое значение больше или равно предыдущему; по умолчанию) или strict (каждое значение строго возрастает) |
Поддерживаемые типы значений: int Возвращает 1, если все элементы в течение указанного периода времени непрерывно возрастают, 0 в противном случае. Пример: => monoinc(/Host1/system.localtime,#3,"strict")=0 — проверка того, постоянно ли увеличивается локальное время системы |
nodata (/узел_сети/ключ,сек,<режим>) | ||
Проверка отсутствия полученных данных. | Смотрите общие параметры. сек период должен быть не менее 30 секунд, так как процесс синхронизации истории (history syncer) вычисляет эту функцию раз в 30 секунд. nodata(/узел_сети/ключ,0) запрещено. режим — при значении strict (в двойных кавычках), эта функция будет нечувствительна к доступности прокси (смотрите комментарии для более подробной информации). |
Поддерживаются все типы значений. Возвращает: 1 — если нет полученных данных за указанный период времени 0 — в противном случае Начиная с версии Zabbix 5.0, триггеры «nodata», контролируемые прокси серверами, по умолчанию чувствительны к доступности прокси — если прокси становится недоступным, триггеры «nodata» не будут срабатывать немедленно после восстановления соединения, а пропустят данные за задержанный период. Обратите внимание, что для пассивных прокси подавление активируется если соединение восстанавливается более чем через 15 секунд и не менее чем через 2 секунды. Для активных прокси подавление активируется, если соединение восстанавливается более чем через 15 секунд. Чтобы выключить чувствительность к доступности прокси, используйте третий параметр, например: nodata(/узел_сети/ключ,5m,"strict"); в этом случае функция будт работать так же, как и до версии 5.0.0, и срабатывать, как только период оценки отсутствия данных (пять минут) истечёт. Обратите внимание, эта функция отобразит ошибку в случае, если за указанный в первом параметре период: - нет данных и Zabbix сервер был перезапущен - нет данных и было завершено обслуживание - нет данных и элемент данных был добавлен или заново активирован Ошибки отображаются в колонке Инфо в настройке триггеров. Эта функция может работать неправильно, если есть расхождения по времени между Zabbix сервером, прокси и агентом. Смотрите также: требования по синхронизации времени; функция nodata() не может быть использована в выражении сама по себе; выражение должно включать как минимум одну функцию из другой группы (за исключением функций даты и времени), ссылающуюся на элемент данных узла сети. Подробную информацию о том, как функция nodata() работает в выражениях, смотрите в разделе Время вычисления. |
percentile (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>,процент) | ||
P-й процентиль периода, где P (процент) указывается третьим параметром. | Смотрите общие параметры. процент — число с плавающей точкой от 0 до 100 (включительно), до 4 цифр после десятичной точки |
Поддерживаемые типы значений: float, int |
rate (/узел_сети/ключ,сек<:сдвиг_времени>) | ||
Усреднённая за секунду скорость увеличения монотонно возрастающего счётчика в течение указанного периода времени. | Смотрите общие параметры. | Поддерживаемые типы значений: float, int Функционально соответствует функции 'rate [en]' из PromQL. Пример: => rate(/узел_сети/ключ,30s) → Если за 30 секунд значение монотонно возросло на 20, эта функция вернёт 0.67. |