【问题标题】:Fargate logging issue using log4j2使用 log4j2 的 Fargate 日志记录问题
【发布时间】:2021-08-28 15:27:36
【问题描述】:

我们有一个 Fargate 服务正在运行。在 CloudWatch 上,我们可以看到 ECS/ContainerInsights->StorageWriteBytes 的指标每小时都在增长,并且在某些时候它不会再增加,可能是因为磁盘空间不足。如果我们不强制部署新的 ECS,我们将开始看到日志错误。错误看起来像:

error: org.apache.logging.log4j.core.appender.AppenderLoggingException: Error 
writing to RandomAccessFile /apollo/env/ReaverFeatureGating/var/output/logs/application.log.%d{yyyy-MM-dd-HH}

问题:

  1. 这对所有的 Fargate 服务都是正常的吗?我们是否设置了一些东西 错了吗?
  2. 我们能否删除所有 AmazonRollingRandomAccessFile 并仅在 log4j2-container.xml 中使用 STDOUT?那仍然会将我们的活动发布到 CloudWatch,但只是不写入磁盘?

【问题讨论】:

    标签: log4j2 aws-fargate


    【解决方案1】:

    经过一番研究,这是我得到的:

    1. 由于默认模板包含 AmazonRollingRandomAccessFile,日志将在本地生成,但永远不会被清理。有一些关于添加 cron 作业来删除日志的建议,但对于我们的案例,我们不需要本地日志。
    2. 是的,CloudWatch 只需要 STDOUT。

    此外,StorageWriteBytes 仅表示读取/写入存储的字节数。它不等于已用磁盘空间。要监控磁盘空间,我们可以将 CloudWatch Agent 构建到容器映像中,然后使用 disk_used 指标。 https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/metrics-collected-by-CloudWatch-agent.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 2016-01-26
      • 1970-01-01
      • 2019-08-22
      • 2017-12-20
      • 2014-10-30
      • 2017-05-18
      相关资源
      最近更新 更多