Все перечисленные здесь функции поддерживаются в:
Некоторые общие замечания о параметрах функций:
<
>
/узел_сети/ключ
и (сек|#число)<:сдвиг_времени>
никогда не должны заключаться в кавычки/узел_сети/ключ
является общим обязательным первым параметром для функций, ссылающихся на историю элемента данных узла сети(сек|#число)<:сдвиг_времени>
является общим вторым параметром для функций, ссылающихся на историю элемента данных узла сети, где:
ФУНКЦИЯ | ||
---|---|---|
Описание | Параметры, специфичные для функции | Комментарии |
change (/узел_сети/ключ) | ||
Величина разницы между последним и предыдущим значениями. | Поддерживаемые типы значений: float, int, str, text, log Для строк возвращается: 0 - значения равны 1 - значения отличаются Пример: => change(/узел_сети/ключ)>10 Разница между числовыми значениями будет вычисляться, как показано на примере следующих значений ('предыдущее' и 'последнее' значение = разница): '1' and '5' = +4 '3' and '1' = -2 '0' and '-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 (по умолчанию для 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 поддерживаются для элементов данных символ, текст и журнал (лог) шаблон (опционально) - искомый шаблон (строковые аргументы должны быть в двойных кавычках) |
Поддерживаемые типы значений: 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 & ProxyUpdateFrequency секунд позже. Для активных прокси подавление активируется, если соединение восстанавливается более чем 15 секунд позже. Чтобы выключить чувствительность к доступности прокси, используйте третий параметр, например: nodata(/узел_сети/ключ,5m,"strict"); в этом случае функция будт работать так же, как и до версии 5.0.0, и срабатывать, как только период оценки отсутствия данных (пять минут) истечёт. Обратите внимание, эта функция отобразит ошибку в случае, если за указанный в первом параметре период: - нет данных и Zabbix сервер был перезапущен - нет данных и было завершено обслуживание - нет данных и элемент данных был добавлен или заново активирован Ошибки отображаются в колонке Инфо в настройке триггеров. Эта функция может работать неправильно, если есть расхождения по времени между Zabbix сервером, прокси и агентом. Смотрите также: требования по синхронизации времени. |
percentile (/узел_сети/ключ,(сек|#число)<:сдвиг_времени>,процент) | ||
P-й процентиль периода, где P (процент) указывается третьим параметром. | Смотрите общие параметры. процент - число с плавающей точкой от 0 до 100 (включительно), до 4 цифр после десятичной точки |
Поддерживаемые типы значений: float, int |
rate (/узел_сети/ключ,сек<:сдвиг_времени>) | ||
Усреднённая за секунду скорость увеличения монотонно возрастающего счётчика в течение указанного периода времени. | Смотрите общие параметры. | Поддерживаемые типы значений: float, int Функционально соответствует функции 'rate [en]' из PromQL. Пример: => rate(/узел_сети/ключ,30s) → Если за 30 секунд значение монотонно возросло на 20, эта функция вернёт 0.67. |