- PVSM.RU - https://www.pvsm.ru -
Помимо того, что Splunk может собирать логи практически из любых источников и строить аналитические отчеты, дашборды, алерты на основе встроенного языка поисковых запросов SPL, о котором мы писали в предыдущих [1] статьях, Splunk еще имеет очень большую базу бесплатных аддонов и приложений.
Сегодня мы рассмотрим одно из самых популярных, с точки зрения пользователей, приложений — Splunk Machine Learning Toolkit.
Сразу скажу, что Splunk Machine Learning Toolkit узко специализирован на задачи и типы данных характерные для Splunk. Он поддерживает только алгоритмы обучения без учителя, и имеет очень конкретное применение.
Так как Splunk в первую очередь ориентирован на машинные данные, то и кейсы реализованные в Machine Learning Toolkit направленны на эту специфику. Далее мы подробно рассмотрим каждый кейс, но сначала кратко про установку.
Само приложение бусплатно дотупно для скачивания на Splunkbase [2], но так как все Machine Learning алгоритмы крутятся на Python, то перед установкой вам потребуется установить Python for Scientific Computing Add-on, о так же бесплатен и устанавливается легко и быстро. Все инструкции здесь [3].
Splunk в этом приложении реализовал 6 кейсов применения возможностей Machine Learning с базовыми статистическими алгоритмами:
Этот модуль делает прогнозирование значений числовых полей, на основе комбинации значений других полей в этом событии.
Пример:
Мы имеем данные о количестве пользователей, использующих различные информационные системы (CRM, CloudDrive, WebMail, Remote Access и другие) в рамках компании за каждый день.
Все эти данные Splunk легко может собрать и организовать в табличку как на картинке. Мы хотим спрогнозировать количество VPN пользователей на основе данных из других полей (CRM, CloudDrive, HR1, WebMail), для этого мы можем построить модель на основе линейной регрессии.
Понятно, что мы можем менять зависимые поля, и сам алгоритм. Попимо линенйной регрессии есть еще несколько популярных алгоритмов.
После чего нажимаем fit model и получаем все выкладки, причем как формате таблицы,
так и графически.
Дальше, когда мы построили модель, мы можем применять ее результаты в других запросах, выносить на дашбодры, строить по ним алерты и прочее.
Данный модуль выявляет аномальные значения на основе предыдущих данных по этому полю.
Пример:
У нас есть данные о максимальном времени ответа сервера на запросы клиентов за каждые 10 минут, которые Splunk легко собирает с сервера или серверов и представляет в виде таблички:
Мы хотим найти аномалии, то есть события когда время отклика было очень долгим, ну или очень быстрым, на основе исторических данных. Splunk предлагает три меры вариации для выявления аномалий (SD — Standard Deviation, IQR — Interquartile Range, mad- Median Absolute Deviation). Построим модель на основе стандартного отклонения:
После чего получаем результаты:
и основные выкладки, как в табличном так и в графическом виде.
Данный модуль предназначен для прогнозирования временных рядов, то есть на основе прошлых данных спрогнозировать будущие.
Основные алгоритмы следующие:
Пример:
У нас есть данные о количестве пересылаемого трафика пользователем, или сервером или шлюзом, по сути не важно откуда.
Мы хотим спрогнозировать количество трафика в будущем.
Строим модель: выбираем алгоритм, выбираем обучающую выборку, выбираем количество значений для прогноза, и получаем результаты с выкладками о качестве модели.
Данный модуль предназначен для прогнозирования категориальной, то есть качественной переменной на основе других полей в этом событии.
Основные алгоритмы следующие (описание здесь [4]):
Пример:
Есть данные телеком оператора с информацией о клиентах (количество внутренних и внешних вызовов, стоимость, ночные звонки, наличие специальных тарифов и прочее). Главное, что есть в этих данных — это поле Churn?, которое показывает ушел от нас клиент или остался. Именно его мы и хотим прогнозировать, на основе вышеперечисленных полей.
Строим модель: выбираем алгоритм, выбираем зависимые переменные, размер обучающей выборки и прочее возможные параметры в зависимости от алгоритма:
Получаем результаты обучения с данными о качестве модели:
Модуль предназначенный для поиска аномалий на основе анализа значений полей в событии, алгоритм определения аномалий здесь [5].
Пример:
У нас есть данные с информацией о покупках в супермаркете и мы хотим найти аномальные транзакции.
Выбираем поля по которым мы хотим определять аномалии:
Получаем результат с найденными аномалиями:
Модуль, позволяющий производить кластеризацию событий. Наверно самый слабый модуль, с точки зрения популярности использования.
Пример:
У нас есть данные из примера 1 о количестве пользователей, использующих различные информационные системы. Мы хотим определить кластеризовать их.
Модель: выбираем поля для кластеризации, нормализуем их, выбираем алгоритм и зависимые поля, а также указываем количество кластеров.
Смотрим, что получилось:
На картинках видим 2 четких кластера, дальше если заниматься интерпретацией результатов можно понять, что первый кластер — это будни, и много пользователей во выбранных системах, второй — выходные дни, и мало пользователей.
Слабость этого модуля также заключается в том, что в нем нет никаких метрик качества построения модели.
Автор: AlexKulakov
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/analiz-danny-h/254482
Ссылки в тексте:
[1] предыдущих: https://habrahabr.ru/company/tssolution/blog/324136/
[2] Splunkbase: https://splunkbase.splunk.com/app/2890/#/overview
[3] здесь: https://splunkbase.splunk.com/app/2890/#/details
[4] здесь: http://docs.splunk.com/Documentation/MLApp/2.2.0/User/Algorithms#Classifiers
[5] здесь: https://docs.splunk.com/Documentation/Splunk/6.5.3/SearchReference/Anomalydetection
[6] тут: http://docs.splunk.com/Documentation/MLApp/2.2.0/API/Introduction
[7] Источник: https://habrahabr.ru/post/327943/
Нажмите здесь для печати.