Grok Pattern - для данных, разделенных запятыми - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь записать шаблон Grok для следующей записи данных:

- Одна строка -

0,2018-12-17 22: 40: 30.000,25980000, 92, True, 0,400,33,0,2018-12-16 22: 40: 30.000,2018-12-17 05: 53: 30.000433,17,32,1,1,18,2018-12-17Very Awake

- Второй ряд -

1,2018-12-17 22: 41: 30.000,25980000,92, True, 0,400,33,0,2018-12-16 22: 40: 30.000,2018-12-17 05: 53: 30.000433,17,32,1,1,18,2018-12-17, «Пробудитесь»

Вот мой образец грока:

%{NUMBER:ID}%{NOTSPACE}%{TIMESTAMP_ISO8601:RecordedDateTimeStamp}*%{NOTSPACE}%{NUMBER:Efficiency}%{NOTSPACE}%{DATA:IsMainSleep}%{NOTSPACE}%{NUMBER:MinutesAfterWakeup}%{NOTSPACE}%{NUMBER:MinutesAsleep}%{NOTSPACE}%{NUMBER:MinutesAwake}%{NOTSPACE}%{NUMBER:MinutesToFallAsleep}%{NOTSPACE}%{NUMBER:SleepStartTime}%{NOTSPACE}%{NUMBER:SleepEndTime}%{NOTSPACE}%{NUMBER:TimeInBed"}%{NOTSPACE}%{NUMBER:RestlessCount}%{NOTSPACE}%{NUMBER:RestlessDuration}%{NOTSPACE}%{NUMBER:AwakeCount}%{NOTSPACE}%{NUMBER:AwakeDuration}%{NOTSPACE}%{NUMBER:AwakeningsCount}%{NOTSPACE}%{TIMESTAMP_ISO8601:DateOfSleep}%{NOTSPACE}%{DATA:SleepState}

Я не уверен, почему, но он не работает в инструменте Grok Debugger в Кибане.

Может кто-нибудь помочь мне выяснить, что не так с моим шаблоном grok?

Заранее спасибо

1 Ответ

0 голосов
/ 27 декабря 2018

Ваш шаблон grok имеет 18 полей, но ваши записи данных имеют 19 полей, третье поле, которое имеет одинаковое значение в обеих записях (25980000, это идентификатор задания?), Не учитывалось в вашем шаблоне.

Кроме того, у вас есть две другие временные метки, которые не анализировались как временные метки, и вам нужно привязать последнее поле, используя $, чтобы указать, где заканчивается каждое сообщение (где grok будет пытаться сопоставить что-либо)

Попробуйте этот шаблон Грока:

%{NUMBER:ID},%{TIMESTAMP_ISO8601:RecordedDateTimeStamp},%{NUMBER:jobId},%{NUMBER:Efficiency},%{DATA:IsMainSleep},%{NUMBER:MinutesAfterWakeup},%{NUMBER:MinutesAsleep},%{NUMBER:MinutesAwake},%{NUMBER:MinutesToFallAsleep},%{TIMESTAMP_ISO8601:SleepStartTime},%{TIMESTAMP_ISO8601:SleepEndTime},%{NUMBER:TimeInBed},%{NUMBER:RestlessCount},%{NUMBER:RestlessDuration},%{NUMBER:AwakeCount},%{NUMBER:AwakeDuration},%{NUMBER:AwakeningsCount},%{DATA:DateOfSleep},%{DATA:SleepState}$

Только что проверил здесь в моей лаборатории и получил этот результат:

{
"MinutesToFallAsleep": "0",
"MinutesAsleep": "400",
"AwakeningsCount": "18",
"TimeInBed": "433",
"AwakeDuration": "1",
"SleepEndTime": "2018-12-17 05:53:30.000",
"MinutesAfterWakeup": "0",
"RestlessDuration": "32",
"jobId": "25980000",
"MinutesAwake": "33",
"SleepStartTime": "2018-12-16 22:40:30.000",
"Efficiency": "92",
"AwakeCount": "1",
"IsMainSleep": "True",
"RestlessCount": "17",
"RecordedDateTimeStamp": "2018-12-17 22:41:30.000",
"DateOfSleep": "2018-12-17",
"ID": "1",
"SleepState": "Awake"
}
...