Документация Zabbix 5.2

Документация Zabbix 5.2 Хостинг

Приведу несколько примеров триггеров для Zabbix.

Допустим есть элементы данных, исходя из них будем создавать триггеры.

Пример триггера сообщающего что трафик на порту коммутатора больше допустимого:

Скачек входящего трафика более 90 Мбит/с за последние 2 минуты на указанном порту:

Еще пример на версии Zabbix 6.2 (питании ниже 190 В за последние 3 минуты, при этом элемент данных выполняется 1 раз в минуту):

Триггер сообщающий о пропаже линка на порту коммутатора, когда значение не равно 1 (замечу что когда пропал линк статус может быть иным от 2, например когда порт заблокирован и т.д., например 1-up, 2-down, 3-testing, 4-unknown, 5-dormant, 6-notPresent, 7-lowerLayerDown):

Чтобы Zabbix сообщил о появлении линка:

Триггер при большой загрузке процессора:

Уровень сигнала больше -7 (а также, чтобы исключить ложные срабатывания, не = 21474836.47, эту цифру выдает Huawei MA5600 когда устройство ONU не в сети):

Еще пример (чтобы исключить ошибочные значения которые ниже -40, то есть триггер сработает когда значение между -19 и -40):

Иногда имеются признаки надвигающейся проблемы. Эти признаки можно заметить, поэтому можно заблаговременно предпринять меры, чтобы предотвратить или хотя бы уменьшить влияние проблемы.

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

1 Функции

Необходимо знать две вещи, а именно то, как описать состояние проблемы и сколько времени нужно, чтобы предпринять меры. Далее есть два способа создать триггер, сигнализирующий о возможной нежелательной ситуации. Первый: триггер должен “загореться”, когда система после “пора действовать”, как ожидается, будет в состоянии проблема. Второй: триггер должен “загореться”, если система перейдет в состояние проблемы за время меньше, чем “пора действовать”. Необходимо воспользоваться функциями триггеров, а именно forecast и timeleft соответсвенно. Надо заметить, что лежащий в основе статистический анализ, в основном идентичен у этих двух функций. Вы можете настроить триггер в зависимости от того, какой путь более предпочтителен для вас, и результаты будут идентичны.

2 Параметры

Обе функции используют почти одинаковый набор параметров. Обратитесь к списку поддерживаемых функций за справкой.

1 Интервал времени

Прежде всего вам необходимо указать период истории, который Zabbix должен проанализировать для составления прогноза. Сделайте это привычным способом при помощи параметров sec или #num и необязательного сдвиг_времени по аналогии с функциями avg, count, delta, max, min и sum.

2 Горизонт предсказания

(Только forecast)
Параметр время определяет, насколько далеко в будущее Zabbix будет экстраполировать зависимости, которые ему удастся найти в исторических данных. Независимо о того, используете ли вы сдвиг_времени или нет, время всегда отсчитывается от текущего момента.

3 Достигаемый порог

(Только timeleft)
Параметр порог определяет значение, которого должен достичь анализируемый элемент данных, нет никакой разницы, сверху или снизу. После того, как мы определили f(t) (смотри ниже), мы должны решить уравнение f(t) = порог и вернуть ближайший к текущему моменту корень, который находится справа от текущего момента, или вернуть 999999999999.9999, если таковых корней нет.

Когда значения элемента данных приближаются к порогу, а затем пересекают его, timeleft делает вывод, что пересечение уже находится в прошлом, и поэтому переключается на следуещее пересечение с уровнем порога, если таковое имеется. Наилучшим решением яляется использование прогнозирований наряду с обычными диагностиками проблем, а не заменой одним на другое.1)

4 Функции аппроксимации

По умолчанию аппроксимация является линейной (linear) функцией. Если наблюдаемая система более сложная, вы можете выбрать один из следующих вариантов.

5 Режимы

(Только forecast)
Каждый раз, когда вычисляется функция триггера, данные запрашиваются из указанного периода истории и по полученным данным строится указанная аппроксимация. Поэтому, если данные немного изменятся, то и построенная аппроксимация немного изменится. Если мы будем просто рассчитывать значение аппроксимирующей функции в заданный момент времени в будущем, то вы ничего не будете знать о том, как согласно прогнозу будет меняться анализируемый элемент данных между текущим моментом и этим моментом в будущем. При некоторых параметрах аппроксимации (вроде polynomial) просто лишь одно значение из будущего может ввести в заблуждение.

Читайте также:  Битрикс 110 connection timed out

3 Подробности

Для того, чтобы избежать вычислений с большими числами, мы рассматриваем штамп времени первого значения в указанном периоде плюс 1 наносекунда как новую точку остчёта времени (текущие штампы времени порядка 109, в квадрате уже 1018, а точность дробных значений около 10-16). 1 нс прибавляется для того, чтобы все значения времени были положительными, поскольку построение логарифмической и степенной аппроксимаций подразумевает вычисление log(t). Этот сдвиг времени не влияет на линейную функцию, полином и экспоненциальную функции (за исключением более легких и более точных вычислений), но изменяет форму логарифмической и степенной функций.

4 Возможные ошибки

Функции возвращают -1 в следующих ситуациях:

Никаких предупреждений или ошибок не выдаётся, если выбранная аппроксимирующая функция плохо описывает предоставленные данные или просто данных недостаточно для точного прогноза.

5 Примеры и обработка ошибок

Для получения предупреждения о том, что у вашего узла сети скоро закончится свободное дисковое пространство, вы можете использовать следующее выражение триггера:

Однако, может появиться код ошибки -1 и перевести ваш триггер в состояние проблемы. Вообще говоря, это не плохо, потому что вы получите предупреждение о том, что ваши прогнозирования не работает должным образом, и вам стоит обратить на них внимание, чтобы разобраться почему. Но иногда это плохо, потому что -1 может просто означать, что за последний час не было получено никаких данных о свободном дисковом пространстве данного узла сети. Если вы получаете много сообщений о ложных тревогах, подумайте об использовании более сложного выражения5) триггера:

Ситуация немного сложнее с forecast. Начнём с того, что -1 может перевести, а может и не перевести триггер в состояние проблемы в зависимости от вашего выражения триггера, которое может быть вроде

Более того, -1 может быть вполне корректным результатом прогнозирования, если прогнозируемый элемент данных может принимать отрицательные значения. Но вероятность возникновения такой ситуации в реальных условиях пренебрежительно мала (смотрите, как работает оператор =). Поэтому добавьте

если вы соответсвенно хотите или, наоборот, не хотите рассматривать -1 как проблему.

Use the host ping monitoring trigger in the Template App Zabbix Agent template to illustrate:

Functions supported by Zabbix

Reference official website:https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions

1.abschange
Parameters: Ignore
Support type: float, int, str, text, log
Function: Return the absolute value of the difference between the most recently obtained value and the previously obtained value. Для строковых типов: 0 означает одинаковые, 1 означает разные

2.сред.
Параметры: секунды или #num
Тип поддержки: float, int
Роль: вернуть среднее значение за определенный период времени
Например:
avg

: среднее значение за последние 5 секунд
avg(#5): представляет среднее значение последних 5 раз.
avg(3600,86400): представляет среднее значение за час до дня.
Если есть только один параметр, это означает среднее значение указанного времени, считая от этого момента, если есть второй параметр, это означает дрейф, считая время до второго параметра,
#n представляет значение последних n раз

4.счет
Параметры: секунды или #num
Тип поддержки: float, int, str, text, log
Функция: вернуть статистику значения за указанный интервал времени,
Например:
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) количество значений больше 12 за 10 минут до 24 часов
count(600,6/7,»band») — количество значений за последние 10 минут, имеющих ‘110’ (в двоичном виде) в 3-х младших битах.
count(600,,,86400) Количество значений данных за 10 минут до 24 часов
Первый параметр: указать период времени
Второй параметр: образцы данных
Третий параметр: рабочие параметры
Четвертый параметр: параметр дрейфа
#Поддерживаемый тип операции
экв: равно
ne: не равно
gt: больше, чем
ge: больше или равно
л: меньше чем
le: меньше или равно
нравится: совпадения содержания

Читайте также:  Бесплатный аналог anydesk

5.дата
Параметры: игнорировать
Тип поддержки: любой
Функция: вернуть текущее время в формате ГГГГММДД

6.деньмесяца
Возвращает текущий день месяца

7.день недели
Возвращает текущий день недели

8.дельта
Параметры: секунды или #num
Тип поддержки: float, int
Функция: вернуть разницу между максимальным значением и минимальным значением в интервале времени

9.разн.
Параметры: игнорируются
Поддерживаемые типы значений: float, int, str, text, log.
Функция: возвращаемое значение 1 указывает, что последнее значение отличается от предыдущего значения, а 0 означает другие ситуации

10.нечеткое время
Параметры: секунды
Поддерживаемые типы значений: float, int
Функция: Возвращаемое значение 1 означает, что отметка времени значения отслеживаемого элемента на N секунд больше, чем время ZabbixServer, а 0 — другое. Часто используйте system.localtime, чтобы проверить, совпадает ли местное время со временем Zabbixserver.

11.последний
Параметры: секунды или #num
Поддерживаемые типы значений: float, int, str, text, log.
Функция: Самое последнее значение, если оно в секундах, игнорируйте его. #num представляет самое последнее N-е значение. Обратите внимание, что текущие #num и #num некоторых других функций имеют разные значения.
last(0) эквивалентно last(#1) last(#3) представляет самое последнее **th** третье значение (не последние три значения)
Эта функция также поддерживает второй параметр **time_shift**, например
last(0,86400) возвращает самое последнее значение день назад
Если есть несколько значений в одну и ту же секунду в истории, Zabbix не гарантирует точный порядок значений
#num поддерживается начиная с Zabbix 1.6.2, а timeshift поддерживается начиная с 1.8.2. Вы можете запросить функцию avg(), чтобы узнать, как она используется

12.logeventid
Параметры: строка
Тип значения поддержки: журнал
Описание: проверьте, соответствует ли EventID самой последней записи журнала регулярному выражению. Параметр представляет собой регулярное выражение в расширенном стиле POSIX. Когда возвращаемое значение равно 0, это означает отсутствие совпадения, а 1 означает совпадение. Эта функция поддерживается начиная с Zabbix 1.8.5.

13.logseverity
Параметры: игнорируются
Тип значения поддержки: журнал
Описание: возвращает уровень журнала самой последней записи журнала (logseverity). Когда возвращаемое значение равно 0, оно представляет собой уровень по умолчанию, а N — конкретный соответствующий уровень (целое число, обычно используемое в журналах событий Windows). Уровень журнала Zabbix берется из столбца Информация журнала Windowseventlog.

14.макс.
Параметры: секунды или #num
Поддерживаемые типы значений: float, int
Описание: Возвращает максимальное значение указанного временного интервала. Интервал времени в качестве первого параметра может быть секундами или количеством собранных значений (с префиксом #). Начиная с Zabbix 1.8.2, функция поддерживает второй необязательный параметр time_shift, вы можете просмотреть функцию avg(), чтобы узнать о его использовании.

15.мин
Параметры: секунды или #num
Поддерживаемые типы значений: float, int
Описание: Возвращает минимальное значение указанного временного интервала. Интервал времени в качестве первого параметра может быть секундами или количеством собранных значений (с префиксом #). Начиная с Zabbix1.8.2, функция поддерживает второй необязательный параметр time_shift, вы можете просмотреть функцию avg(), чтобы узнать об ее использовании.

16.нет данных
Параметры: секунды
Тип значения поддержки: любой
Описание: Когда возвращаемое значение равно 1, это означает, что данные не поступают в указанный интервал (интервал не должен быть меньше 30 секунд), а 0 означает другое.

17.сейчас
Параметры: игнорируются
Тип значения поддержки: любой
Описание: Возвращает количество секунд от эпохи (1 января 1970 г., 00:00:00 UTC)

18.пред.
Параметры: игнорируются
Поддерживаемые типы значений: float, int, str, text, log.
Описание: Возвращает предыдущее значение, похожее на last(#2)

19.regexp
Параметры: первый параметр — строка, второй параметр — секунды или #num
Поддерживаемые типы значений: str, log, text
Описание: Проверяет, соответствует ли последнее значение регулярному выражению. Регулярным выражением параметра является расширенный стиль POSIX. Второй параметр — это количество секунд или количество собранных значений. Будет обработано несколько значений. Эта функция чувствительна к регистру. Когда возвращаемое значение равно 1, это означает, что оно найдено, а 0 — другое.

Читайте также:  Не удалось создать подпись 0x80090010

20.стр.
Параметры: первый параметр — строка, второй параметр — секунды или #num
Поддерживаемые типы значений: str, log, text
Описание: Найдите строку в самом последнем значении. Первый параметр указывает строку поиска с учетом регистра. Второй необязательный параметр указывает количество секунд или количество собранных значений, будут обработаны несколько значений. Когда возвращаемое значение равно 1, это означает, что найдено, а 0 — другое.

21.стрлен
Параметры: секунды или #num
Поддерживаемые типы значений: str, log, text
Описание: укажите длину строки (не байтов) самого последнего значения. Значение параметра аналогично последней функции. Например, strlen(0) эквивалентен strlen(#1), strlen(#3) представляет собой третье самое последнее значение, strlen (0,86400) представляет самое последнее значение день назад. Эта функция поддерживается начиная с Zabbix 1.8.4

.

22.сум
Параметры: секунды или #num
Поддерживаемые типы значений: float, int
Описание: Возвращает сумму значений, собранных за указанный интервал времени. Интервал времени в качестве первого параметра поддерживает количество секунд или собранных значений (начиная с #). Начиная с Zabbix1.8.2, эта функция поддерживает time_shift в качестве второго параметра. Вы можете проверить функцию avg, чтобы узнать, как она используется

23.время
Параметры: игнорируются
Тип значения поддержки: любой
Описание: Возвращает текущее время в формате ЧЧММСС, например 123055

.

параметр

Ссылка на официальный сайт: https://www.zabbix.com/documentation/2.2/manual/config/triggers/suffixes

с — секунды (при использовании работает так же, как исходное значение)
м — минуты
ч — часы
д — дни
ж — недели

Также поддерживает использование параметров емкости:

К — килограмм
М — мега
Г — гига
Т — тера

Например, эквивалентное преобразование параметров, параметры в параметре 1 можно заменить на параметры в параметре 2:

Логический синтаксис триггеров Zabbix см. на официальном сайте: https://www.zabbix.com/documentation/2.2/manual/config/triggers/expression

Описание операторов на официальном сайте

Документация Zabbix 5.2

В выражении # может иметь больше функций:

sum(600): Указывает сумму всех значений, полученных в течение 600 секунд

sum(#5): Представляет сумму последних 5 значений

Если последними полученными 5 значениями являются 3, 7, 2, 6, 5

1. Параметр должен быть задан даже для тех функций, которые его игнорируют. Пример: последний(0)

Я не понял это предложение на официальном сайте. Вероятно, это означает, что функциям, которые могут игнорировать параметры, нужно присвоить четное число?

2. Функции avg, count, last, min и max поддерживают дополнительный второй параметр time_shift. Этот параметр позволяет ссылаться на данные за определенный период времени в прошлом. Например, avg(1h,1d) вернет среднее значение за час один день назад.

Функции avg, count, last, min и max поддерживают дополнительный второй параметр time_shift. Этот параметр задает период времени, а прошлые данные используются в качестве ссылки. Например, avg(1h,1d) возвращает среднее значение того же часа предыдущего дня. К

3、Триггеры оценивают только информацию об истории. Если история недоступна (особенно актуально для временного сдвига), информация о тренде не используется, поэтому история должна храниться по крайней мере в течение периода, ожидаемого функциями триггера.

Примеры выражений для экземпляров официального сайта

Характеристики гистерезиса (гистерезис, гистерезис):

Создать пользовательский параметр

Пример скрипта проверки сайта:

Проверить сценарий

Протестируйте новый элемент zabbix с сервера zabbix

Создать элемент и триггер в zabbix

Пользователи / Клиенты

.last(#2) = предыдущее значение элемента

Действия

Чтобы протестировать действия, создайте фальшивый тестовый триггер для своего сценария (Хост, Группа хостов, Серьезность).
Мы будем использовать «vm.memory.size» из шаблона ОС Linux для создания поддельного триггера.

Чтобы отключить, но сохранить тестовый триггер, измените выражение на «<1» или полностью отключите триггер.

Понимание и использование операций действий Zabbix

Я нашел вкладку операций довольно запутанной, особенно «Длительность шага операции по умолчанию» и номера «Шагов».
Вот как это работает:

СМИ

Отправляйте электронные письма не во время технического обслуживания в воскресенье с 4:00 до 4:45:

Подробнее: https://www.zabbix.com/documentation/3.0/manual/appendix/time_period

Оцените статью
Хостинги