Машиноведение по данным журнала сервера

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

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

  • Какое обучение может быть сделано из таких данных?
    • Возможно, будет предсказана вероятность того, что IP-адрес, совершающий спам-клики по объявлениям (да, компания в этом), основывается на некоторых шаблонах использования предыдущих спамеров?
    • Может быть предсказано, в какое время трафик может стрелять.
  • Существуют ли какие-либо существующие инструменты/проекты, которые специально используют?
  • Любые интересные ресурсы/документы, которые рассказывают о подобных вещах?
  • Кроме того, активность процесса, связанного с данными, в течение определенного времени на сервере. может ли это быть полезным для обучения?

Ответы

Ответ 1

Взгляните на Wei Xu и др. (2010) Опыт работы с журналами консоли Google Production  и работу, которую они цитируют. Короче говоря:

  • Извлеките журналы регистрации (например, "Запись в файл% s" ) из исходного кода для извлечения идентификаторов из журналов (предмет в журнале, соответствующий% s, является идентификатором). Они используют определенные эвристики для различения идентификаторов от неидентификаторов (например, время).
  • Используйте отношения между значениями вместо необработанного числа (например, отношение неудачных и всех коммитов)
  • Используйте анализ основных компонентов для обнаружения аномалий в векторах таких функций.

Вероятно, вы не можете сделать 1. Но, может быть, вы можете извлечь переменные, которые пишут ваш собственный "парсер".

Также была проблема DARPA, чтобы обнаружить атаку в таких данных, но это было почти 15 лет назад.

Есть такие инструменты, как splunk, но кроме приятного интерфейса они не предлагают многого помимо простого поиска и фильтрации. UPDATE: плагин обнаружения аномалий prelert.

Я не знаю гораздо больше. Пожалуйста, дайте мне знать, если вы найдете что-нибудь еще.

Итак, что бы я сделал:

  • Извлечь функции/переменные из журналов

    Вероятно, у вас нет доступа к исходному коду, сгенерировавшему сообщения, как у Xu, но я предполагаю, что большая часть журналов может быть покрыта небольшим количеством шаблонов (например, все журналы брандмауэра будут иметь одинаковые шаблон). Вы можете написать функции анализа парсеров регулярного выражения из этих журналов (например, соединение было отклонено в определенное время).

  • Попробуйте выявить аномалию (PCA или просто отклонение от среднего по каждому из них) и предсказать их.