Загрузите log4j2 файлы формата JSON в AWS CloudWatch с правильной отметкой времени - PullRequest
2 голосов
/ 21 июня 2019

Я пытаюсь загрузить файлы журнала в 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"}

  1. Более старый агент выдал исключение, потому что он пытался использовать мой сконфигурированный формат метки времени для анализа метки времени в сообщении, а не в поле timestamp.
  2. Унифицированный агентневозможно проанализировать метки времени с точностью до секунды, что приводит к проблемам при попытке объединить потоки журналов из нескольких источников.

Итак, есть ли лучший инструмент / стратегия для загрузки файлов log4j2 в формате JSON в CoudWatch?

...