Я пытаюсь выяснить, как читать в JSON файл с Logstash, который содержит все события на одной строкеLogstash: Как читать однострочные JSON
Пример ввода:
{"metadata": {"metadata fields": "metadata data"},"results": [{"events":[{"event fields": "event data"}, {"event fields": "event data"}}],"field": {"more fields": "data"}}
Expanded JSON:
{
"metadata": {
"metadata fields": "metadata data"
},
"results": [{
"events": [{
"event fields": "event data"
}, {
"event fields": "event data"
}
}], "field": {
"more fields": "data"
}
}
Я пытался просто с помощью JSON-кодек, однако, когда я бегу Logstash зависает после печати успешно запущен. Еще одна вещь, которую я пробовал, чтобы заставить ее работать, заключается в добавлении новой строки в конце JSON, но это не будет работать в процессе производства, потому что я не могу контролировать источник журналов.
Есть ли у кого-нибудь предложения по правильному анализу этих журналов через Logstash? Ниже приведен файл конфигурации. Заранее спасибо!
Config
input {
file {
path => "C:/Folder/*.json"
sincedb_path => "C:\nul"
start_position => "beginning"
codec => "json"
type => "data"
}
}
output {
stdout { codec => rubydebug }
}
Это недопустимо JSON. Возможно, причина, по которой это не работает. – Fairy
Есть ли у вас какие-либо идеи, как я могу его разобрать? – Mielzus
Некоторые сложные фильтры grock будет выполнять эту работу. – Fairy