karabanov
@karabanov
Системный администратор

Как выявить резкое изменение количества запросов к web-серверу?

Здравствуйте.

Суть в следующем. Клиенты делают запросы к WEB серверу. Необходимо выявлять резкое изменение количества запросов и присылать сообщение.
Пример есть вот такая статистика по запросам:

ckq7la3yz0xco-scruv9hsgvmy0.png

Как видите с 07:00 до 07:05 произошло значительное изменение количества запросов. Глазами это легко увидеть, но как этот механизм реализовать в скрипте? На мой взгляд это имеет некоторое сходство с биржевыми котировками, я слышал, что торговые терминалы умеют выявлять такие изменения и присылать алерт, подскажите пожалуйста каким образом происходит выявление таких изменений?

PS
Столбец "dynamics in %" показывает изменение количества запросов в сравнении с предыдущей проверкой и рассчитывается по формуле ($total_last_req/$total_prev_req)*100-100 если результат отрицательный, то количество запросов упало на указанный процент, если положительное, то соответственно, увеличилось.
Но этого не достаточно, так как мгновенное изменение, из-за малого количества запросов, может значительно колебаться и давать false-positiv результаты, необходимо делать рассчёт на основании последних пяти измерений.
В общем подскажите пожалуйста, каким методом можно выявить такое изменение?
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
karabanov
@karabanov Автор вопроса
Системный администратор
В общем торговые терминалы делают это используя фильтр Калмана.

Но как и оговорил выше, я был уверен, что тут не нужна такая глубокая аналитика и нашёл решение проще:
lzydvq-kirodk11addonryhpqpk.png
Усреднение позволяет сохранять состояние WARNING на протяжении нескольких проверок, что в общем-то и требовалось:
wekik-wmffpgkfslrmczfdffwuk.png
Ради интереса попробовал ещё 50 перцентиль, но слишком быстро "затухает" состояние WARNING, простое усреднение подошло лучше всего. Таким образом мониторинг успевает заметить, что произошло нечто аномальное (алерт прилетает только после четырёх неудачных проверок) и fals positiv теперь нет.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@dmshar
Задача поиска выбросов и изменения модели поведения временнОго ряда. Глубоко изучена в теории и давненько применяется в системах выявления вторжений и других системах кибербезопасности.
Может ставиться в различных постановках - от просто зафиксировать факт повышения потока запроса до задачи раннего оповещения о возможном аномальном изменении трафика.
Задача, действительно, не имеет единого решения. Кроме того, применение Отдельных методов часто дает относительно высокий процент ошибок первого и второго рода, а для целей выявления вторжений -
это очень неприятно. Поэтому сегодня стараются применять не конкретный метод, а ансамбль методов. В качестве отдельных критериев используют, все, что известно науке - от элементарного t-критерия Стьюдента, до LSTM сетей.
К сожалению, на русском литературы мало, а качество имеющейся оставляет желать лучшего. На английском только книг за последние 9 лет мне известно около двух с половиной десятков наименований.
Ну вот просто самое последнее, что попалось - 2020 год издания.
Data Science in Cybersecurity and Cyberthreat Inte...
А статей на частные темы - в том числе и о той, что мы говорим - только у меня накоплено на насколько Гигабайт, да в закладках интернет - пару сотен ссылок.
Почему информация слабо распространена и складывается впечатление, что тут целина - немного писал уже вот тут:
Какие существующие IDS (системы обнаружения вторжений) используют нейронные сети?
Ответ написан
Комментировать
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Это называется системы мониторинга и алертинга. Datadog, Prometheus, Splunk. Можно другие посмотреть
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы