2019/08/04 08:15 1/6 2 Выражение триггера

Save this PDF as:
 WORD  PNG  TXT  JPG

Размер: px
Начинать показ со страницы:

Download "2019/08/04 08:15 1/6 2 Выражение триггера"

Транскрипт

1 2019/08/04 08:15 1/6 2 Выражение триггера 2 Выражение триггера Обзор Используемые в триггерах выражения являются очень гибкими. Вы можете использовать их для создания сложных логических тестов, учитывая статистику по мониторингу. Простое полезное выражение может выглядеть примерно так: {<сервер>:<ключ>.<функция>(<параметр>)}<оператор><константа> 1 Функции Функции триггеров позволяют ссылаться на собранные значения, текущее время и другие факторы. Доступен полный список поддерживаемых функций. 2 Параметры функций Большинство числовых функций принимают количество секунд в качестве параметра. Вы можете использовать префикс #, чтобы указать какой параметр должен иметь другой смысл: ВЫЗОВ ФУНКЦИИ СМЫСЛ sum(600) sum(#5) Сумма всех значений за 600 секунд Сумма последних 5 значений Функция last использует другой смысл для значений когда начинается с решетки - он жает выбрать n-ое предыдущее значение, так что с учетом значений 3, 7, 2, 6, 5 (от наиболее нового до наиболее старого), last(#2) вернется 7 и last(#5) вернется 5. Параметр должен быть задан даже для тех функций которые его игнорируют. Например: last(0) Функции avg, count, last, min и max поддерживают дополнительный, второй параметр time_shift. Этот параметр позволят ссылаться на данные из периода времени в прошлом. Например, avg(1h,1d) будет возвращено среднее значение за час одним днем ранее. Триггеры лишь оценивают информацию истории. Если история не доступна (особенно актуально для сдвига времени), информация тенденций не используется, таким образом история должна храниться по крайней мере на ожидаемый период функций триггеров. Вы можете использовать поддерживаемые единицы измерений в выражениях триггеров, например '5m' (минут) вместо '300' секунд или '1d' (день) вместо '86400' секунд. '1K' будет состоять из '1024' байт. Zabbix Documentation

2 Last update: 2014/09/26 11:35 ru:manual:config:triggers:expression 3 Операторы Следующие операторы поддерживаются для триггеров (представлены по убыванию приоритета выполнения): ПРИОРИТЕТ ОПЕРАТОР ОПРЕДЕЛЕНИЕ 1 / Деление 2 * Умножение 3 - Арифметический минус 4 + Арифметический плюс 5 < 6 > 7 # 8 = 9 & Логическое И 10 Логическое ИЛИ 4 Примеры триггеров Менее чем. Этот оператор может быть представлен в виде: A<B (A<=B ) Более чем. Этот оператор может быть представлен в виде: A>B (A>=B ) Не равен. Этот оператор может быть представлен в виде: A#B (A<=B ) (A>=B ) Равен. Этот оператор может быть представлен в виде: A=B (A>B ) & (A<B ) Пример 1 Высокая загрузка процессора на { ' передает короткое имя наблюдаемого параметра. Эта строка указывает, что контролируется сервер ' и ключ 'system.cpu.load[all,avg1]'. Используя функцию 'last()', мы ссылаемся на самое последнее значение. И наконец '>5' означает, что триггер будет определен как ПРОБЛЕМА всякий раз, когда последнее значение загрузки процессора на сервере будет превышать 5. Пример 2 перегружен { { cpu.load[all,avg1].min(10m)}>2 Это выражение будет определено как ПРОБЛЕМА, когда либо текущая загрузка процессора больше 5, либо загрузка процессора больше 2 за последние 10 минут. Printed on 2019/08/04 08:15

3 2019/08/04 08:15 3/6 2 Выражение триггера Пример 3 Изменился файл /etc/passwd Используем функцию diff: { Это выражение будет определено как ПРОБЛЕМА, когда предыдущее значение контрольной суммы файла /etc/passwd отличается от последнего значения. Аналогичные выражения могут быть полезны для мониторинга изменений в важных файлах, таких как /etc/passwd, /etc/inetd.conf, /kernel и других. Пример 4 Кто-то скачивает большой файл из Интернет Используем функцию min: { Это выражение будет определено как ПРОБЛЕМА, когда сумма полученных байт за последних 5 минут на интерфейсе eth0 превышает 100КБ. Пример 5 Оба узла кластера SMTP серверов недоступны Примечание, в выражении используются два разных узла сети: {smtp1.zabbix.com:net.tcp.service[smtp].last(0)}=0&{smtp2.zabbix.com:net.tcp.service[smtp].last(0)}=0 Это выражение будет определено как ПРОБЛЕМА, когда оба SMTP сервера недоступны smtp1.zabbix.com и smtp2.zabbix.com. Пример 6 Zabbix агент нуждается в обновлении Используем функцию str(): {zabbix.zabbix.com:agent.version.str("beta8")}=1 Это выражение будет определено как ПРОБЛЕМА, когда версия Zabbix агента содержит в себе Zabbix Documentation

4 Last update: 2014/09/26 11:35 ru:manual:config:triggers:expression 'beta8' (возможно 1.0beta8). Пример 7 Сервер недоступен {zabbix.zabbix.com:icmpping.count(30m,0)}>5 Выражение правдиво, если узел сети zabbix.zabbix.com недоступен более 5 раз за последние 30 минут. Пример 8 Нет получения данных за последние 3 минуты Используем функцию nodata(): {zabbix.zabbix.com:tick.nodata(3m)}=1 tick должен иметь тип Zabbix trapper. Для того чтобы этот триггер заработал, элемент данных tick должен существовать. Узел сети должен периодически отправлять данные этому элементу данных используя zabbix_sender. Если не было получено данных за последние 180 секунд, значение триггера будет определено как ПРОБЛЕМА. Пример 9 Активность ЦПУ в ночное время Используем функцию time(): {zabbix:system.cpu.load[all,avg1].min(5m)}>2&{zabbix:system.cpu.load[all,avg 1].time(0)}>000000&{zabbix:system.cpu.load[all,avg1].time(0)}< Триггер может быть определен как ПРОБЛЕМА только в ночное время (00:00-06:00). Пример 10 Проверяет, если локальное время на клиенте синхронизировано с временем на Zabbix сервере Используется функция fuzzytime(): {MySQL_DB:system.localtime.fuzzytime(10)}=0 Триггер меняет состояние на проблему тогда, когда локальное время на сервере MySQL_DB и Zabbix сервере различаются более чем на 10 секунд. Printed on 2019/08/04 08:15

5 2019/08/04 08:15 5/6 2 Выражение триггера Пример 11 Сравнение среднего значения загрузки сегодня со средним значением загрузки в это же время вчера (использование второго параметра time_shift). {server:system.cpu.load.avg(1h)}/{server:system.cpu.load.avg(1h,1d)}>2 Триггер сменит свое состояние на проблему, если средняя загрузка за последний час будет больше в два раза чем за аналогичный период времени вчера. 5 Гистерезис Иногда триггер должен иметь различные условия для разных состояний. Например, мы хотим определить триггер, который перейдет в состояние ПРОБЛЕМА если температура в серверной комнате поднимется выше 20 градусов. При этом триггер должен оставаться в состоянии ПРОБЛЕМА, пока температура не опустится ниже 15 градусов. Для того чтобы сделать это, мы определим следующий триггер: Пример 1 Температура в серверной комнате слишком высокая. ({TRIGGER.VALUE}=0&{server:temp.last(0)}>20) ({TRIGGER.VALUE}=1&{server:temp.last(0)}>15) Примечание: Здесь используется макрос {TRIGGER.VALUE}, который возвращает текущее состояние триггера (его числовое значение). Пример 2 Очень мало свободного дискового пространства Проблема: если меньше 10ГБ за последние 5 минут Восстановление: если больше 40ГБ за последние 10 минут ({TRIGGER.VALUE}=0&{server:vfs.fs.size[/,free].max(5m)}<10G) ({TRIGGER.VALUE}=1&{server:vfs.fs.size[/,free].min(10m)}<40G) Примечание: Здесь используется макрос {TRIGGER.VALUE}. Этот макрос возвращает текущее значение триггера. Zabbix Documentation

6 Last update: 2014/09/26 11:35 ru:manual:config:triggers:expression From: - Zabbix Documentation 2.0 Permanent link: Last update: 2014/09/26 11:35 Printed on 2019/08/04 08:15