Анализ файла журнала: извлечение информационной части из части значения


10

Я пытаюсь создать набор данных из нескольких файлов журнала одного из наших продуктов.

Различные файлы журналов имеют свой собственный макет и собственный контент; Я успешно сгруппировал их, остался всего один шаг ...

Действительно, журнал «Сообщения» - лучшая информация. У меня нет исчерпывающего списка всех этих сообщений, и это плохая идея - создавать жесткий код, основанный на них, потому что этот список может меняться каждый день.

То, что я хотел бы сделать, это отделить идентификационный текст от текста значения (например: «Загруженный файл XXX» становится (идентификация: «Загруженный файл», значение: «XXX»)). К сожалению, этот пример прост, и в реальном мире существуют разные макеты и иногда несколько значений.

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

Есть ли у вас какие-либо идеи?

Спасибо за вашу помощь.

PS: для тех, кто программирует, это может быть легче понять. Допустим, что код содержит как журналы printf ("blabla% s", "xxx") -> я бы хотел разделить "blabla" и "xxx"


Можете ли вы предоставить репрезентативную подборку примеров, демонстрирующих разнообразие элементов, которые алгоритм должен будет проанализировать?
Эмре

2
Есть сто способов сделать это. Дайте некоторое представление о том, какие инструменты или язык вам нужны для этого. Есть ли в этом аспект науки о данных? похоже просто лог разбора.
Шон Оуэн

Ответы:


3

Как насчет рассмотрения каждой строки как трассировки процесса и применения альфа-алгоритма? Это дало бы вам график, и узлы с большим числом внешних точек, скорее всего, будут указывать на значения.

Вы можете пометить эти узлы и для каждой новой строки анализировать / проходить по графику, пока не дойдете до этих областей.


Большое спасибо. Я не знал альфа-алгоритмов. Я проверю в этом направлении.
Майкл Хореман

2

Это не кажется проблемой Data Science. Тем не менее, есть очень хорошие инструменты для этого: checkst: logstash, flume и fluentd. На самом деле, если вы хотите иметь возможность быстро и «умно» отфильтровать Kibana от ребят из ElastichSearch ( http://www.elasticsearch.org/overview/kibana ). Этих инструментов достаточно, чтобы решить вашу проблему очень эффективно.


Я считаю, что извлечение функций является частью науки о данных. Ну, это просто мнение ;-) Более серьезно, я говорю не о простых стандартных файлах журнала, а о пользовательских файлах из очень специфического программного обеспечения. Итак, это действительно извлечение информации из контекстных «предложений»
Майкл Хореман

1

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

Вы можете даже сделать что-то вроде поиска первого числового символа и разделить текст пополам прямо перед этим.

С помощью регулярных выражений вы можете сопоставить все числовые символы, которые следуют друг за другом. Шаблон будет ([0-9]+)с глобальным флагом. Это будет соответствовать всем группам чисел, и вы сможете потом делать с ними все, что у вас есть.

Regex Tester хорош для игры с такими вещами.


Спасибо Лорик. К сожалению, не только цифры, и я не знаю также, какие будущие сообщения будут. Итак, мне действительно нужен ИИ.
Майкл Хореман
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.