【问题标题】:How to rotate logs in AWS CloudWatch?如何在 AWS CloudWatch 中轮换日志?
【发布时间】:2016-06-03 01:35:40
【问题描述】:

我正在使用 Amazon CloudWatch 日志代理 (AWS documentation) 将日志从我的 EC2 实例上传到 CloudWatch 控制台。

对于我在 EC2 上的 CloudWatch 日志代理配置,我有以下内容:

[general]
state_file = /var/awslogs/state/agent-state  

[applog]
file = /var/www/html/logs/applog.log
log_group_name = MyApp
log_stream_name = applog.log
datetime_format = %Y-%m-%d %H:%M:%S

我的问题是,如何让 applog.log 每天轮换?在 AWS 文档(上面的链接)中,它提到能够配置日志轮换策略,但我找不到任何关于如何实际执行此操作的提及/示例。我尝试将 log_stream_name 指定为 applog_%Y-%m-%d.log,但它按字面意思解释。

非常欢迎任何正确方向的想法或指示 - 谢谢!

【问题讨论】:

    标签: amazon-web-services logging amazon-cloudwatch


    【解决方案1】:

    我认为没有办法使用 Amazon 的 CloudWatch 日志代理来轮换 log_stream_name。文档中描述的日志轮换与摄取由您的系统轮换的日志文件有关,CloudWatch 日志代理本身不执行任何日志轮换。

    根据the documentationlog_stream_name 属性中允许的唯一变量是{instance_id}{hostname}{ip_address}

    【讨论】:

      【解决方案2】:

      我认为您要求的是日志到期。至少那是我一直在寻找的。以下是在一定时间后如何使日志过期:

      1. 通过sam template
      2. 通过控制台:
        1. 在 AWS 控制台仪表板上,导航到 Cloudwatch>>日志。
        2. 在列出所有日志的表中,对于您有问题的特定日志:在“Expire Events After”列中单击“Never expire”。弹出窗口将允许您选择保留期限

      【讨论】:

        【解决方案3】:

        根据代理文档,日志文件名可以有通配符。

        Cloudwatch Agent Docs

        文件可以指向一个特定文件或多个文件(使用通配符 例如 /var/log/system.log*)。只有最新的文件被推送到 CloudWatch Logs 基于文件修改时间。

        因此,您可以开始写入与您的模式匹配的新文件,一切都应该没问题。

        【讨论】:

          猜你喜欢
          • 2019-07-13
          • 1970-01-01
          • 1970-01-01
          • 2020-05-21
          • 2019-02-11
          • 2020-03-19
          • 1970-01-01
          • 1970-01-01
          • 2017-09-03
          相关资源
          最近更新 更多