Заранее признателен за помощь.
В моем сценарии - многострочные журналы Cloudwatch должны быть отправлены в Службу эластичного поиска.ECS - awslog-> Cloudwatch --- с использованием лямбды -> ES Domain (базовый поток, хотя и очень открытый для изменения способа передачи данных из CW в ES)
Мне удалосьрешить проблему с несколькими строками, используя multi_line_start_pattern НО Основная проблема, с которой я сейчас сталкиваюсь, - это то, что мои журналы имеют формат ODL (следующий формат)
[yyyy-mm-ddThh:mm:ss.SSS-Z][ProductName-Version][Log Level]
[Message ID][LoggerName][Key Value Pairs][[
Message]]
И я хочу проанализировать и токенизировать события журнала перед сохранениемв ES (против полной строки журнала). Например:
[2018-05-31T11:08:49.148-0400] [glassfish 4.1] [INFO] [] [] [tid: _ThreadID=43 _ThreadName=Thread-8] [timeMillis: 1527692929148] [levelValue: 800] [[
[] INFO : (DummyApplicationFunctionJPADAO) EntityManagerFactory located under resource lookup name [null], resource name=AuthorizationPU]]
Необходимо выполнить синтаксический анализ и токенизацию в формате
timestamp 2018-05-31T11:08:49.148-0400
ProductName-Version glassfish 4.1
LogLevel INFO
MessageID
LoggerName
KeyValuePairs tid: _ThreadID=43 _ThreadName=Thread-8
Message [] INFO : (DummyApplicationFunctionJPADAO)
EntityManagerFactorylocated under resource lookup name
[null], resource name=AuthorizationPU
В приведенных выше парах значения ключа повторяются ипеременная - для простоты я могу хранить все как одну длинную строку.
Что касается того, что я собрал об Cloudwatch - похоже, шаблон фильтра подписки reg ex support очень ограничен, на самом деле я не уверен, как соответствовать вышеуказанному шаблону.Для лямбда-функции, которая отправляет данные в ES, не встречались документация AWS или примеры, которые поддерживают лямбду в качестве средства для анализа и передачи для ES.
Буду признателен, если кто-то может подсказать, что / где будет лучшим вариантом для разбораCW записывает в журнал, прежде чем попасть в ES => Subscription Filter -Pattern против лямбда-функции или любым другим способом.
Спасибо.