Обзор Splunk Machine Learning Toolkit

в 5:19, , рубрики: dashboard, machine learning, splunk, анализ данных, анализ логов, Блог компании TS Solution, логи, машинное обучение, определение зависимостей, прогнозирование, регрессия, Серверное администрирование, Сетевые технологии, системное администрирование

Обзор Splunk Machine Learning Toolkit - 1
Помимо того, что Splunk может собирать логи практически из любых источников и строить аналитические отчеты, дашборды, алерты на основе встроенного языка поисковых запросов SPL, о котором мы писали в предыдущих статьях, Splunk еще имеет очень большую базу бесплатных аддонов и приложений.

Сегодня мы рассмотрим одно из самых популярных, с точки зрения пользователей, приложений — Splunk Machine Learning Toolkit.

Сразу скажу, что Splunk Machine Learning Toolkit узко специализирован на задачи и типы данных характерные для Splunk. Он поддерживает только алгоритмы обучения без учителя, и имеет очень конкретное применение.

Так как Splunk в первую очередь ориентирован на машинные данные, то и кейсы реализованные в Machine Learning Toolkit направленны на эту специфику. Далее мы подробно рассмотрим каждый кейс, но сначала кратко про установку.

Где взять?

Само приложение бусплатно дотупно для скачивания на Splunkbase, но так как все Machine Learning алгоритмы крутятся на Python, то перед установкой вам потребуется установить Python for Scientific Computing Add-on, о так же бесплатен и устанавливается легко и быстро. Все инструкции здесь.

Возможности применения

Splunk в этом приложении реализовал 6 кейсов применения возможностей Machine Learning с базовыми статистическими алгоритмами:

1. Predict Numeric Fields

Этот модуль делает прогнозирование значений числовых полей, на основе комбинации значений других полей в этом событии.

Пример:

Мы имеем данные о количестве пользователей, использующих различные информационные системы (CRM, CloudDrive, WebMail, Remote Access и другие) в рамках компании за каждый день.
Обзор Splunk Machine Learning Toolkit - 2
Все эти данные Splunk легко может собрать и организовать в табличку как на картинке. Мы хотим спрогнозировать количество VPN пользователей на основе данных из других полей (CRM, CloudDrive, HR1, WebMail), для этого мы можем построить модель на основе линейной регрессии.
Обзор Splunk Machine Learning Toolkit - 3

Понятно, что мы можем менять зависимые поля, и сам алгоритм. Попимо линенйной регрессии есть еще несколько популярных алгоритмов.
Обзор Splunk Machine Learning Toolkit - 4

После чего нажимаем fit model и получаем все выкладки, причем как формате таблицы,
Обзор Splunk Machine Learning Toolkit - 5

так и графически.
Обзор Splunk Machine Learning Toolkit - 6

Дальше, когда мы построили модель, мы можем применять ее результаты в других запросах, выносить на дашбодры, строить по ним алерты и прочее.

2. Detect Numeric Outliers

Данный модуль выявляет аномальные значения на основе предыдущих данных по этому полю.

Пример:
У нас есть данные о максимальном времени ответа сервера на запросы клиентов за каждые 10 минут, которые Splunk легко собирает с сервера или серверов и представляет в виде таблички:
Обзор Splunk Machine Learning Toolkit - 7

Мы хотим найти аномалии, то есть события когда время отклика было очень долгим, ну или очень быстрым, на основе исторических данных. Splunk предлагает три меры вариации для выявления аномалий (SD — Standard Deviation, IQR — Interquartile Range, mad- Median Absolute Deviation). Построим модель на основе стандартного отклонения:
Обзор Splunk Machine Learning Toolkit - 8

После чего получаем результаты:
Обзор Splunk Machine Learning Toolkit - 9

и основные выкладки, как в табличном так и в графическом виде.
Обзор Splunk Machine Learning Toolkit - 10

3. Forecast Time Series

Данный модуль предназначен для прогнозирования временных рядов, то есть на основе прошлых данных спрогнозировать будущие.
Основные алгоритмы следующие:
Обзор Splunk Machine Learning Toolkit - 11

Пример:
У нас есть данные о количестве пересылаемого трафика пользователем, или сервером или шлюзом, по сути не важно откуда.
Обзор Splunk Machine Learning Toolkit - 12

Мы хотим спрогнозировать количество трафика в будущем.
Строим модель: выбираем алгоритм, выбираем обучающую выборку, выбираем количество значений для прогноза, и получаем результаты с выкладками о качестве модели.
Обзор Splunk Machine Learning Toolkit - 13

4. Predict Categorical Fields

Данный модуль предназначен для прогнозирования категориальной, то есть качественной переменной на основе других полей в этом событии.
Основные алгоритмы следующие (описание здесь):
Обзор Splunk Machine Learning Toolkit - 14

Пример:
Есть данные телеком оператора с информацией о клиентах (количество внутренних и внешних вызовов, стоимость, ночные звонки, наличие специальных тарифов и прочее). Главное, что есть в этих данных — это поле Churn?, которое показывает ушел от нас клиент или остался. Именно его мы и хотим прогнозировать, на основе вышеперечисленных полей.
Обзор Splunk Machine Learning Toolkit - 15

Строим модель: выбираем алгоритм, выбираем зависимые переменные, размер обучающей выборки и прочее возможные параметры в зависимости от алгоритма:
Обзор Splunk Machine Learning Toolkit - 16

Получаем результаты обучения с данными о качестве модели:
Обзор Splunk Machine Learning Toolkit - 17

5. Detect Categorical Outliers

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

Пример:
У нас есть данные с информацией о покупках в супермаркете и мы хотим найти аномальные транзакции.
Обзор Splunk Machine Learning Toolkit - 18

Выбираем поля по которым мы хотим определять аномалии:
Обзор Splunk Machine Learning Toolkit - 19

Получаем результат с найденными аномалиями:
Обзор Splunk Machine Learning Toolkit - 20

6. Cluster Numeric Events

Модуль, позволяющий производить кластеризацию событий. Наверно самый слабый модуль, с точки зрения популярности использования.

Пример:
У нас есть данные из примера 1 о количестве пользователей, использующих различные информационные системы. Мы хотим определить кластеризовать их.

Модель: выбираем поля для кластеризации, нормализуем их, выбираем алгоритм и зависимые поля, а также указываем количество кластеров.
Обзор Splunk Machine Learning Toolkit - 21

Смотрим, что получилось:
Обзор Splunk Machine Learning Toolkit - 22

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

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

Итоги

  1. Splunk очень хорош тем, что все эти таблички, которые мы получаем на вход в каждую модель он создает сам из огромного количества логов из различных систем, что на самом деле не очень просто (он их собирает, и хранит, и предобрабатывает)
  2. Если вам нужен быстрый статистический анализ, то есть базовые операции Machine Learning — никуда ходить не надо
  3. Это не конечный результат, дальше может быть отдельный workflow, алертинг например, или уход в дашборд
  4. У Splunk открытый API и если Вам не хватает алгоритмов, то можно их подгрузить из открытых Python библиотек, информация как это сделать тут
  5. Splunk может также отдать результаты наружу, например по тому же API

Автор: AlexKulakov

Источник

Поделиться

* - обязательные к заполнению поля