Все перечисленные здесь функции поддерживаются в:
Функции перечислены без подробных сведений. Нажмите на функцию, чтобы увидеть полную информацию.
| Функция | Описание |
|---|---|
| change | Величина разницы между последним и предыдущим значениями. |
| changecount | Количество изменений между соседними значениями за определённый период вычисления. |
| count | Количество значений за определённый период вычисления. |
| countunique | Количество уникальных значений за определённый период вычисления. |
| find | Поиск соответствующего значения за определённый период вычисления. |
| first | Первое (самое старое) значение за определённый период вычисления. |
| fuzzytime | Проверка того, насколько время пассивного агента отличается от времени Zabbix сервера/прокси. |
| last | Самое новое значение. |
| logeventid | Проверка, соответствует ли указанному регулярному выражению идентификатор события последней записи из журнала. |
| logseverity | Важность события последней записи в журнале. |
| logsource | Проверка, соответствует ли регулярному выражению источник последней записи в журнале. |
| monodec | Проверка наличия монотонного убывания значений. |
| monoinc | Проверка наличия монотонного возрастания значений. |
| nodata | Проверка отсутствия полученных данных. |
| percentile | P-й процентиль периода, где P (процент) указывается третьим параметром. |
| rate | Усреднённая за секунду скорость увеличения монотонно возрастающего счётчика в течение указанного периода времени. |
/узел_сети/ключ является общим обязательным первым параметром для функций, ссылающихся на историю элемента данных узла сети(сек|#число)<:сдвиг_времени> является общим вторым параметром для функций, ссылающихся на историю элемента данных узла сети, где:
Некоторые общие замечания о параметрах функций:
< >/узел_сети/ключ и (сек|#число)<:сдвиг_времени> никогда не должны заключаться в кавычкиВеличина разницы между последним и предыдущим значениями.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.
Для строк возвращается: 0 — значения равны; 1 — значения отличаются.
Параметры: смотрите общие параметры.
Комментарии:
+4-2-2.5Примеры:
change(/узел_сети/system.uptime)<0 #изменение времени непрерывной работы системы получилось отрицательным относительно предыдущего значения (означая перезагрузку)
change(/узел_сети/system.cpu.load[all,avg1])>2 #загрузка CPU (за одну минуту) скакнула более чем на 2 относительно предыдущего значения
change(/узел_сети/vfs.fs.size[/,free])<-1G #свободное место на диске упало более чем на 1 ГБ за время между проверкамиКоличество изменений между соседними значениями за определённый период вычисления.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.
Параметры:
Для нечисловых типов значений параметр режим игнорируется.
Примеры:
changecount(/узел_сети/icmpping,10m)>5 #состояние пинга поменялось более 5 раз за 10 минут
changecount(/узел_сети/vfs.file.contents["/sys/class/net/eth0/operstate"],1h)>5 #рабочее состояние интерфейса eth0 поменялось более 5 раз за час
changecount(/узел_сети/proc.num[httpd],15m)>10 #количество процессов httpd поменялось более 10 раз за 15 минут
changecount(/узел_сети/ключ,#10,"inc") #количество возрастаний значений (относительно соседнего значения) среди последних 10 значений
changecount(/узел_сети/ключ,24h,"dec") #количество убываний значений (относительно соседнего значения) за последние 24 часа до текущего моментаКоличество значений за определённый период вычисления.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.
Параметры:
операторы:шаблонешаблонеКомментарии:
шаблон может быть указан как два числа, разделённых косой чертой («/»): число_для_сравнения/маска. count() вычисляет «побитовое И» из значения и маски и сравнивает результат с числом_для_сравнения. Если результат «побитового И» равен числу_для_сравнения, то значение считается.шаблон может быть обычным или глобальным (начинающимся с «@») регулярным выражением. В случае глобальных регулярных выражений чувствительность к регистру наследуется из настроек глобального регулярного выражения. При проверке соответствия регулярному выражению, значения с плавающей точкой всегда будут представлены с 4 цифрами после десятичной точки («.»). Также обратите внимение, что для больших чисел различие между десятичным (хранящимся в базе данных) и двоичным (используемом сервером Zabbix) представлениями может повлиять на 4-ю десятичную цифру.Примеры:
count(/узел_сети/icmpping,30m,,"0")>5 #пинг сбоил более 5 раз за 30 минут
count(/узел_сети/ключ,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 часа назад) от текущего моментаКоличество уникальных значений за определённый период вычисления.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.
Параметры:
операторы:шаблонешаблонеКомментарии:
шаблон может быть указан как два числа, разделённых косой чертой («/»): число_для_сравнения/маска. countunique() вычисляет «побитовое И» из значения и маски и сравнивает результат с числом_для_сравнения. Если результат «побитового И» равен числу_для_сравнения, то значение считается.шаблон может быть обычным или глобальным (начинающимся с «@») регулярным выражением. В случае глобальных регулярных выражений чувствительность к регистру наследуется из настроек глобального регулярного выражения. При проверке соответствия регулярному выражению, значения с плавающей точкой всегда будут представлены с 4 цифрами после десятичной точки («.»). Также обратите внимение, что для больших чисел различие между десятичным (хранящимся в базе данных) и двоичным (используемом сервером Zabbix) представлениями может повлиять на 4-ю десятичную цифру.Примеры:
countunique(/узел_сети/ключ,10m) #количество уникальных значений за последние 10 минут до текущего момента
countunique(/узел_сети/ключ,10m,"like","error") #количество уникальных значений за последние 10 минут до текущего момента, которые содержат «error»
countunique(/узел_сети/ключ,10m,,12) #количество уникальных значений за последние 10 минут до текущего момента, которые равны «12»
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 часа назад) от текущего моментаПоиск соответствующего значения за определённый период вычисления.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.
Возвращает: 1 — найдено; 0 — в противном случае.
Параметры:
операторы:шаблоне (с учётом регистра)шаблонешаблонеоператор — regexp или iregexpКомментарии:
шаблон может быть обычным или глобальным (начинающимся с «@») регулярным выражением. В случае глобальных регулярных выражений чувствительность к регистру наследуется из настроек глобального регулярного выражения.Примеры:
find(/узел_сети/agent.version,,"like","beta")=1 #Zabbix agent имеет бета-версию, требуется обновление
find(/узел_сети/log[/var/log/nginx/access.log],,"regexp"," 500 ")=1 #найдена внутренняя ошибка веб-сервераПервое (самое старое) значение за указанный период вычисления.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.
Параметры:
Смотрите также last().
Пример:
first(/узел_сети/ключ,1h) #извлечь самое старое значение за последний час вплоть до текущего моментаПроверка того, насколько время пассивного агента отличается от времени Zabbix сервера/прокси.
Поддерживаемые типы значений: Float, Integer.
Возвращает: 1 — если разница между значением пассивного элемента данных (как штампа времени) и штампом времени Zabbix сервера/прокси (временем получения значения) меньше или равна сек секунд; 0 — в противном случае.
Параметры:
Комментарии:
vfs.file.time[/путь/файл,modify] для проверки, что файл не обновлялся длительное время.fuzzytime(/узел_сети/system.localtime,60s)=0 or last(/узел_сети/trap)<>0.Примеры:
fuzzytime(/узел_сети/system.localtime,5m)=0 #локальное время клиента отличается от времени Zabbix сервера/прокси более чем на 5 минут
fuzzytime(/узел_сети/system.localtime,5m)=0 and nodata(/host/system.localtime,10m)=0 #локальное время клиента отличается от времени Zabbix сервера/прокси более чем на 5 минут (в тоже время убеждаемся, что элемент данных не перестал сообщать значения)Самое новое значение.
Поддерживаемые типы значений: Float, Integer, String, Text, Log.
Параметры:
Комментарии:
last(/узел_сети/ключ) всегда идентичен last(/узел_сети/ключ,#1); last(/узел_сети/ключ,#3) — третье из самых новых значение (не три последних значения).Примеры:
last(/узел_сети/ключ) #извлечь последнее значение
last(/узел_сети/ключ,#2) #извлечь предыдущее значение
last(/узел_сети/ключ,#1) <> last(/узел_сети/ключ,#2) #последнее значение отличается от предыдущегоПроверка, соответствует ли указанному регулярному выражению идентификатор события последней записи из журнала.
Поддерживаемые типы значений: Log.
Возвращает: 0 — нет соответствия; 1 — соответствует.
Параметры:
Примеры:
logeventid(/узел_сети/eventlog[Security],,"4625")=1 #найдена запись в журнале с идентификатором, совпадающим с "4625" (неудачная аутентификация, failed authentication)
logeventid(/узел_сети/eventlog[System],,"6008|41")=1 #найдена запись в журнале с идентификатором, совпадающим с "6008" или "41"Важность события последней записи в журнале.
Поддерживаемые типы значений: Log.
Возвращает: 0 — важность по умолчанию; N — важность (целое число, полезно для журналов событий Windows: 1 — Уведомление, 2 — Предупреждение, 4 — Ошибка, 7 — Аудит отказов, 8 — Аудит успехов, 9 — Критическая ошибка, 10 — Детали).
Параметры:
Zabbix берёт важность журнала из поля Информация журнала событий Windows.
Примеры:
logseverity(/узел_сети/log[/var/log/syslog],10m)>3 #найдена запись в журнале с важностью выше чем «3»
logseverity(/узел_сети/eventlog[System],10m)=4 #найдена запись в журнале с важностью, равной «Ошибка»Проверка, соответствует ли регулярному выражению источник последней записи в журнале.
Поддерживаемые типы значений: Log.
Возвращает: 0 — нет соответствия; 1 — соответствует.
Параметры:
Обычно используется для журналов событий Windows.
Примеры:
logsource(/узел_сети/eventlog[Application],,"MSSQLSERVER")=1 #найдена запись в журнале с источником, совпадающим с «MSSQLSERVER»
logsource(/узел_сети/eventlog[System],,"Service Control Manager")=1 #найдена запись в журнале с источником, совпадающим с «Service Control Manager»
logsource(/узел_сети/eventlog[System],,"Service Control Manager")=1 and logeventid(/host/eventlog[System],,"7031")=1 #найдена запись в журнале с источником, совпадающим с «Service Control Manager», и и идентификатором события, совпадающим с «7031»Проверка наличия монотонного убывания значений.
Поддерживаемые типы значений: Integer.
Возвращает: 1, если все элементы в течение указанного периода времени непрерывно уменьшаются; 0 — в противном случае.
Параметры:
Примеры:
monodec(/узел_сети/system.swap.size[all,free],60s) + monodec(/узел_сети2/system.swap.size[all,free],60s) + monodec(/узел_сети3/system.swap.size[all,free],60s) #посчитать, на каком количестве узлов сети было уменьшение свободного места в области подкачки
monodec(/узел_сети/proc.num[nginx],10m,"strict")=1 #количество процессов nginx монотонно уменьшалось за последние 10 минутПроверка наличия монотонного возрастания значений.
Поддерживаемые типы значений: Integer.
Возвращает: 1, если все элементы в течение указанного периода времени непрерывно возрастают; 0 — в противном случае.
Параметры:
Примеры:
monoinc(/узел_сети/system.localtime,#3,"strict")=0 #локальное время системы не увеличивается последовательно
monoinc(/узел_сети/vfs.dir.count[/mnt/data/logs],24h,"weak")=0 #срабатывает, если количество файлов не меняется более 24 часов (ожидается рост)Проверка отсутствия полученных данных.
Поддерживаемые типы значений: Integer, Float, Character, Text, Log.
Возвращает: 1 — если нет полученных данных за указанный период времени; 0 — в противном случае.
Параметры:
nodata(/узел_сети/ключ,0) запрещеноКомментарии:
nodata(/узел_сети/ключ,5m,"strict"); в этом случае функция будет срабатывать, как только период оценки отсутствия данных (пять минут) истечёт.Пример:
nodata(/узел_сети/agent.ping,5m)=1 #срабатывает, если от Zabbix агента за 5 минут не было получено данныхP-й процентиль периода, где P (процент) указывается третьим параметром.
Поддерживаемые типы значений: Float, Integer.
Параметры:
Примеры:
percentile(/узел_сети/net.if.in[eth0,bytes],1h,95)>1000000 #95-й процентиль входящего сетевого трафика (байт/сек) за 1 час превысил пороговое значение (например, 1 МБ/с).
percentile(/узел_сети/system.cpu.util,5m,95)>80 #95-й процентиль процента использования CPU в режиме пользователя превысил 80%
percentile(/узел_сети/icmppingsec[192.168.0.2],15m,95)>0.15 #большинство измерений задержки показывают значение ниже 150 мс, но верхняя часть диапазона (верхние 5%) указывает на наличие регулярной задержки
percentile(/узел_сети/net.if.in[eth0,bytes],1h,50) #вычислить 50-й процентиль (медианное значение) входящего сетевого трафика за час; это даст результат, отличающийся от функции avg() (среднее значение), поскольку процентиль не учитывает аномальные значения
(percentile(/узел_сети/net.if.in[eth0,bytes],1h,50)+percentile(/узел_сети/net.if.in[eth0,bytes],1h,51))/2 #вычислить точное медианное значение с чётным числом значений за часУсреднённая за секунду скорость увеличения монотонно возрастающего счётчика в течение указанного периода времени.
Поддерживаемые типы значений: Float, Integer.
Параметры:
Функционально соответствует функции «rate [en]» из PromQL.
Примеры:
rate(/узел_сети/ключ,30s) #Если за 30 секунд значение монотонно возросло на 20, эта функция вернёт 0.67.
rate(/узел_сети/net.if.in[eth0,bytes],5m)>500000 #скорость входящего трафика на интерфейсе eth0 превысила 500 КБ/с за последние 5 минут
rate(/узел_сети/app.requests.count,1m)>100 #за последнюю минуту счетчик запросов увеличился более чем на 100 запросов в секунду.