Лучший способ сделать это - настроить Ingest node на предварительную обработку документов перед их индексацией в es.
В вашем случае вам необходим Grok Processor , чтобы сопоставить поле сообщения и разделить его на поля. Ниже приведен пример определения конвейера с Grok Processor для загрузки вашего документа в эластичная
{
"description" : "...",
"processors": [
{
"grok": {
"field": "message",
"patterns": ["%{DATESTAMP:timestamp}%{SPACE}%{SPACE}\[(?<misc1>.*)\]%{SPACE}%{WORD:loglevel}%{SPACE}%{JAVACLASS:originator}%{SPACE}\[(?<misc2>.*)\]%{SPACE}%{GREEDYDATA:data}"]
}
}
]
}
С приведенным выше определением конвейера ваши данные будут проиндексированы, как показано ниже.
{
"_index" : "logs_exception",
"_type" : "_doc",
"_id" : "9RI-BGoBwdzZ5ffB3_Sj",
"_score" : 2.4795628,
"_source" : {
"CorrelationId" : "bd3fc7d6-ca39-44e1-9a59-xxasdasd1",
"timestamp" : "19-04-10 10:36:27,780",
"misc1" : 8,
"loglevel": ERROR,
"originator": "LoggingService.TestConsole.Program",
"misc2": (null),
"data" : "- System.AppDomainUnloadedException: Attempted to access an unloaded AppDomain.",
"Message" : "2019-04-10 10:36:27,780 [8] ERROR LoggingService.TestConsole.Program [(null)] - System.AppDomainUnloadedException: Attempted to access an unloaded AppDomain."
}