Я пытаюсь загрузить файлы журнала в AWS CloudWatch.Приложение выводит JSON в стиле log4j2 в файл:
https://logging.apache.org/log4j/2.x/manual/layouts.html#JSONLayout
AWS предоставляет 2 агента журнала cloudwatch для этой задачи.«Старый» агент и «унифицированный» агент:
https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_GettingStarted.html
Я пытался использовать оба агента, но столкнулся со следующими проблемами, в основном касающимися разбора временных меток и фактачто агент выполняет сопоставление с регулярным выражением для всей строки журнала и не анализирует его как JSON:
Пример сообщения журнала (дополнительные поля опущены):
{"message": "Processing data for previous day: 2019-06-17T02:01:00", "timestamp": "2019-06-18T17:16:19.338000+0100"}
- Более старый агент выдал исключение, потому что он пытался использовать мой сконфигурированный формат метки времени для анализа метки времени в сообщении, а не в поле
timestamp
. - Унифицированный агентневозможно проанализировать метки времени с точностью до секунды, что приводит к проблемам при попытке объединить потоки журналов из нескольких источников.
Итак, есть ли лучший инструмент / стратегия для загрузки файлов log4j2 в формате JSON в CoudWatch?