Я новичок в ELK и Grok-фильтрации, и я борюсь с синтаксическим анализом этого конкретного шаблона в моем фильтре Grok.
Я использовал отладчик grok, чтобы попытаться решить эту проблему, но, хотя мне нравится этот инструмент, я просто получаю смущает нестандартные выкройки.
В конце концов, я надеюсь проанализировать множество файлов журналов, отправленных filebeat в logstash, затем отправить проанализированные журналы в elasticsearch и отобразить с помощью kibana или другого подобного инструмента визуализации.
Строки, которые мне нужно проанализировать, следуют следующему шаблону:
1310 2017-01-01 16:48:54 [325:51] [326:49] [359:57] Some log info text
- Первые четыре цифры - это идентификатор типа журнала, который будет использоваться для группировки. Я назвал поле «LogLineID».
- Дата имеет формат ГГГГ-ММ-ДД ЧЧ: ММ: СС и обрабатывается нормально. Я назвал поле «LogDate».
- But now the problem begins. Within the square brackets, I have counters, formatted as MM:SS if you like. I cannot for the life of me find a way to sort these out, but I need to compare these times, hence I want to store them as minutes and seconds, not just numbers.
- The first is a counter "TimeSpent",
- второй - счетчик TimeStarted и
- третий - счетчик TimeSinceDown.
- Затем, наконец, идет информационный текст, который мне удалось разобрать, просто применив% {GREEDYDATA: LogInfo}.
Я заметил, что количество минут может быть намного больше, чем стандартные 60 минут в течение часа, поэтому я могу лаять здесь не на то дерево, пытаясь разобрать его с помощью шаблонов даты, таких как TIMESTAMP_ISO8601, но тогда я действительно не знаю как еще это сделать.
Итак, я зашел так далеко:
%{NUMBER:LogLineID} %{TIMESTAMP_ISO8601:LogDate}
и, как уже упоминалось, смогли (отрезав части квадратных скобок) проанализировать текст информации журнала с помощью
%{GREEDYDATA:LogInfo}
создать поле LogInfo.
Но на этом я застрял. Может ли кто-нибудь помочь мне разобраться с остальным?
Заранее огромное спасибо.
PS! Я также нашел % {NUMBER: duration}, но он мог бы как насколько я мог судить, синтаксический анализ только меток времени с точкой, а не двоеточием ..