Использование Grok для извлечения данных журнала Android

Я новый пользователь в ELK и logstash, и я пытаюсь извлечь следующий журнал с помощью grok, но безуспешно.

Это мой журнал: 08-14 10:22:50.863 1419 1419 D GpsNetInitiatedHandler: location enabled :false

и я хочу извлечь это вот так:

  • отметка времени: 08-14 10: 22: 50.863
  • не важно 1: 1419
  • не важно 2: 1419
  • уровень журнала: D
  • сообщение: GpsNetInitiatedHandler: местоположение включено: ложь

person Alisa Faingold    schedule 27.08.2019    source источник


Ответы (1)


Я бы порекомендовал протестировать шаблоны на отладчике Grok, мне нравится использовать этот, но его много: http://grokconstructor.appspot.com/do/match

Что вы можете сделать для записи в журнале, так это создать настраиваемый шаблон для отметки времени, или вы можете проверить шаблоны grok по умолчанию для времени / даты, если вы хотите еще больше разделить временную метку

Например, используя отладчик grok, скопируйте и вставьте свою запись журнала в первое поле, где вы помещаете строки журнала, которые хотите сопоставить.

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

TIMESTAMP \d\d-\d\d \d\d:\d\d:\d\d.\d\d\d

Теперь я создал окончательный шаблон Grok, используя пользовательский шаблон TIMESTAMP и несколько шаблонов по умолчанию, которые обычно используются, и поместил его во вторую ячейку:

%{TIMESTAMP:timestamp} %{NOTSPACE:id1} %{NOTSPACE:id2} %{NOTSPACE:log-level} %{GREEDYDATA:message}

Нажав кнопку «Вперед!» кнопку вверху, теперь мы можем получить желаемый результат (при необходимости вы можете изменить имя id1 и id2)  введите описание изображения здесь

Если все выглядит хорошо, просто создайте собственный шаблон, следуя документации logstash, и используйте последний шаблон Grok в своем фильтре Grok, и все должно работать

person justkind    schedule 28.08.2019