Настроить алерты для сервиса
Алертинг позволяет следить за изменениями в метриках и отправлять уведомления, когда показатели достигают критических значений. Изменения в метриках отслеживаются с помощью периодически отправляемых запросов — алертов. Когда они достигают пороговых значений, система отправляет уведомление через указанный канал связи. Например, по электронной почте или в мессенджер.
В сервисе Smart Web Security доступны метрики скорости входящих запросов:
load_balancer.smart_web_security.requests_per_second— количество запросов к защищаемому ресурсу в секунду. Это значение соответствует количеству запросов, обработанных профилем безопасности.load_balancer.smart_web_security.arl_requests_per_second— количество запросов к защищаемому ресурсу в секунду, которые обработаны модулем Advanced Rate Limiter.
Можно настроить алерты при достижении метриками определенных порогов скорости. А также использовать метки для расчета метрик по отдельным событиям.
Чтобы настроить алертинг:
- Создайте канал уведомлений.
- Выберите метрики и метки для контроля.
- Создайте алерт.
Рассмотрим примеры создания алертов, которые могут быть полезны для выявления аномалий:
Алерт об увеличении доли заблокированных запросов
Алерт будет срабатывать, когда количество заблокированных запросов составляет 50% и более от общего количества запросов. Такой алерт поможет выявить различные типы атак, например, DDoS-атаки или попытку взлома с использованием ботов.
Обозначим буквами количество входящих запросов в секунду:
A— общее количество запросов.B— запросов, заблокированных профилем безопасности.
Настроим алерты:
Bсоставляет 30% отA— предупреждение (Warning);Bсоставляет 50% отA— критический уровень (Alarm).
Создание канала уведомления
-
В консоли управления
слева выберите каталог. -
Выберите сервис Monitoring.
-
Выберите раздел Каналы уведомлений.
-
Нажмите Создать канал.
-
Укажите имя канала, метод отправки и получателей.
Примечание
Чтобы получать уведомления, пользователь должен:
- иметь роль
monitoring.viewerна каталог, в котором настроен алерт. - в настройках
консоли управления:- включить опцию Мониторинг;
- указать адрес электронной почты, номер телефона и Telegram-аккаунт или группу.
- иметь роль
-
Нажмите Создать.
Выбор метрик для контроля
- Величину
Aбудем получать с помощью метрикиload_balancer.smart_web_security.requests_per_second. - Величину
Bбудем получать с помощью метрикиload_balancer.smart_web_security.requests_per_second, отфильтровав по меткеantirobot_verdict=deny. - Долю
BотAбудем вычислять как100 * B / Aи сохранять в значенииC.
Создание алерта
-
На странице сервиса Monitoring нажмите Создать алерт.
-
Введите название алерта, например,
exceeding-blocked-requests. -
В блоке Настройки алерта опишите запрос для получения
A:- Напротив значка нажмите
и добавьте параметры:
service=Application Load Balancer;name=load_balancer.smart_web_security.requests_per_second;antirobot_verdict=allow;load_balancer=<имя_балансировщика_нагрузки>.
- Напротив значка нажмите
. - Задайте функцию для обработки данных
replace_nan(0)— замена пропусков данных на значение0, чтобы график был непрерывным.
- Напротив значка нажмите
-
Нажмите Добавить запрос.
-
Опишите запрос для получения
B:- Укажите данные для сбора:
service=Application Load Balancer;name=load_balancer.smart_web_security.requests_per_second;antirobot_verdict=deny;load_balancer=<имя_балансировщика_нагрузки>.
- Задайте функцию
replace_nan(0).
-
Нажмите Добавить запрос.
-
Опишите запрос
Cдля получения долиBотAв процентах:- Нажмите
, чтобы переключиться в текстовый режим редактирования запроса. - В строке запроса введите
100 * B / A.
- Нажмите
-
В блоке Настройки алерта укажите:
Запрос для проверки—C.Функция агрегации—Все значения.Warning—30(предупреждение).Alarm—50(критический уровень).Окно вычисления—30 секунд.Задержка вычисления—15 секунд.
-
В блоке Обработка отсутствия данных оставьте значения по умолчанию.
-
(опционально) В блоке Аннотации добавьте информацию, которую следуют записывать при срабатывании алерта.
-
В блоке Уведомления добавьте канал для отправки уведомления.
-
Нажмите Создать.
Алерт о высокой скорости легитимных запросов
Обозначим буквами количество входящих запросов в секунду:
A— разрешенных профилем безопасности.B— разрешенных профилем ARL.
В норме величина A должна быть равна или немного больше B. То есть количество запросов, разрешенных профилем безопасности, незначительно превышает установленный лимит в ARL. А значит большинство запросов, разрешенных профилем безопасности, достигает вирутального хоста. В этом случае нагрузка на систему находится в пределах нормы.
Значительная разница в количестве запросов означает, что система не справляется с нагрузкой и блокирует потенциально легитимные запросы. Это возможно при недостаточной производительности или атаке. Если такая ситуация наблюдается постоянно, стоит пересмотреть настройки профиля безопасности или лимиты скорости.
Чтобы выявить такое превышение скорости, настроим алерты:
AпревышаетBна 30% — предупреждение (Warning);AпревышаетBна 50% — критический уровень (Alarm).
Создание канала уведомления
-
В консоли управления
слева выберите каталог. -
Выберите сервис Monitoring.
-
Выберите раздел Каналы уведомлений.
-
Нажмите Создать канал.
-
Укажите имя канала, метод отправки и получателей.
Примечание
Чтобы получать уведомления, пользователь должен:
- иметь роль
monitoring.viewerна каталог, в котором настроен алерт. - в настройках
консоли управления:- включить опцию Мониторинг;
- указать адрес электронной почты, номер телефона и Telegram-аккаунт или группу.
- иметь роль
-
Нажмите Создать.
Выбор метрик для контроля
- Величину
Aбудем получать с помощью метрикиload_balancer.smart_web_security.requests_per_second, отфильтровав по меткеantirobot_verdict=allow. - Величину
Bбудем получать с помощью метрикиload_balancer.smart_web_security.arl_requests_per_second, отфильтровав по меткеarl_verdict=allow. - Превышение
AнадBв процентах будем вычислять как100 * abs(A - B) / Bи сохранять в значенииC.
Создание алерта
-
На странице сервиса Monitoring нажмите Создать алерт.
-
Введите название алерта, например,
inbound-over-ARL. -
В блоке Настройки алерта опишите запрос для получения
A:- Напротив значка нажмите
и добавьте параметры:service=Application Load Balancer;name=load_balancer.smart_web_security.requests_per_second;antirobot_verdict=allow;load_balancer=<имя_балансировщика_нагрузки>.
- Напротив значка нажмите
и задайте функции для обработки данных:series_sum()— сумма значений метрик с разными метками для конкретной точки. В нашем примере метка одна —antirobot_verdict, но для других метрик эта функция будет полезна.replace_nan(0)— замена пропусков данных на значение0, чтобы график был непрерывным.
- Напротив значка нажмите
-
Нажмите Добавить запрос.
-
Опишите запрос для получения
B:- Укажите данные для сбора:
service=Application Load Balancer;name=load_balancer.smart_web_security.arl_requests_per_second;arl_verdict=allow;load_balancer=<имя_балансировщика_нагрузки>.
- Задайте функции
series_sum()иreplace_nan(0).
- Укажите данные для сбора:
-
Нажмите Добавить запрос.
-
Опишите запрос
Cдля получения разницы междуAиBв процентах:- Нажмите
, чтобы переключиться в текстовый режим редактирования запроса. - В строке запроса введите
100 * abs(A - B) / B.
- Нажмите
-
В блоке Настройки алерта укажите:
Запрос для проверки—C.Функция агрегации—Все значения.Warning—30(предупреждение).Alarm—50(критический уровень).Окно вычисления—30 секунд.Задержка вычисления—15 секунд.
-
В блоке Обработка отсутствия данных оставьте значения по умолчанию.
-
(опционально) В блоке Аннотации добавьте информацию, которую следуют записывать при срабатывании алерта.
-
В блоке Уведомления добавьте канал для отправки уведомления.
-
Нажмите Создать.