Join Yalantis and get a $1000 sign-in bonus! React.js, React Native, Python, Java, DevOps, BА. Apply now!
×Закрыть

Ищу пример log data pattern recognition

Может быть, кому-нибудь попадался такой пример, в виде статьи с примерами кода, выложенного на GitHub, с использованием Mahout или SparkML.

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

С первой попытки навскидку нагуглить ничего настолько конкретного пока не получилось.

Поделитесь ссылкой, если вам такое попадалось?

P.S.:
Можно и не про распознавание подозрительной активности пользователей сайта, а про что-нибудь ещё, но по такому же принципу работающее.

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Я читаю вот этого человека. У него, правда, больше по анализу outliers чем по pattern matching, да и доменная область — финансовый фрод, но думаю применимо

И да, система там как раз основана на Spark и прочих вкусностях

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

Не совсем по теме, но всё же очень интересная статья, найденная по ссылке одного из дайджестов здесь: rayli.net/...orithms-in-plain-english

Попробуйте погуглить «log mining» и «log mining site:github.com», возможно что-нибудь полезное найдется

Серебряной пули в этих процессах нет.
SIEM используют многоуровневую систему фильтрации и корреляции событий, магистральные IPS/NGFW выкусывают паттерны ASIC-ами, системы нижнего уровня тупо пользуют sed/awk
Все это намекает на то, что подход будет сильно разным от цели и сегмента, куда продукт позиционируется.

Я нагуглил такое: www.graylog.org и код открытый: github.com/Graylog2

Обычно решают задачу от противного. Вместо того чтобы рыться в логах, сразу ставят целью журналирование событий. А вообще для разного ресурса разное поведение будет аномальным.

В общем случае аномальным является как раз таки равномерная нагрузка. Особенно если на странице есть ссылки, по которым ходят ну крайне редко. Это говорит об участии в DDOS-атаке.

Нормальным поведением пользователя является зависание на какой-либо странице на определённое время. Если этого не происходит — скорее всего бот. Вот только ты этим фильтром можешь сильно обидеть поисковых роботов.

Как видишь, первичная задача решается не отсевом аномальной активности, а как раз таки журналированием нормальной. Отсутствие нормальной — уже звоночек, и повод понизить юзеру приоритеты. В частности имеет смысл пустить его запросы с запретом обновления инфы в кеше.

На самом деле, выявление аномальной активности юзеров — это всего лишь пример.

Меня интересовали именно техники работы с данными, применение алгоритмов (machine learning, data mining, вот это всё): выявление паттернов в больших наборах данных. Живой пример с разбором в статье и/или с кодом на GitHub.

Выпарсить числа из логов это твоя задача, примеров под твой формат логов естественно ты не найдешь.
А когда числа есть под популярные тулкиты наверняка есть примеры, например: github.com/twitter/AnomalyDetection
scikit-learn.org/...ot_outlier_detection.html

Спасибо что разрешил погуглить за тебя!

с использованием Mahout или SparkML.
Это что-то навороченное. Не подскажу ничего.
Но можешь в первом приближение построить среднюю активность пользователя во времени суток с учетом выходных. Затем оценить дисперсию по времени суток и если активность изменилась достаточно сильно от среднего (достаточно сильно оценишь через дисперсию), то считать ее аномальной. Понятно, что если дисперсия будет большая, то работать будет плохо. И вообще алгоритм простейший.

Подписаться на комментарии