【问题标题】:How to set retention days to a logstream with cloudformation or yaml如何使用 cloudformation 或 yaml 将保留天数设置为日志流
【发布时间】:2022-01-18 23:19:41
【问题描述】:

所以,我一直在为这项任务来回工作。

我有 AWS CloudWatch 日志,我必须将保留策略应用于日志组的某些日志流

日志组:“我的日志组” 在里面我有不同的日志流 日志流-a 日志流-b

我想做的是为每个日志流设置不同的保留天数。

Logstream-a = 180 天 日志流-b = 90 天

我发现我可以将保留设置设置为 YAML 中的日志组,但我无法对日志流执行此操作。

CloudWatchLogGroup:
    Type: AWS::Logs::LogGroup
    Properties:
      LogGroupName: MyLoggroup
      RetentionInDays: 180

有没有办法通过 Python、Cloudformation 或 YAML 将保留设置应用于 LogStream?

【问题讨论】:

    标签: python aws-lambda yaml amazon-cloudformation amazon-cloudwatchlogs


    【解决方案1】:

    正如您已经发现的那样,您可以在LogGroupsset log retention,但不能在LogStreams 上。

    您可以使用CloudWatch S3 exports 通过LogStream 间接区分留存率。使 S3 导出适用于您的用例的原因在于 export tasks 可以按 logStreamNamePrefix 过滤导出。

    # CloudWatchLogs.Client
    response = client.create_export_task(
        taskName='string',
        logGroupName='string',
        logStreamNamePrefix='string', # Export only log streams that match the provided prefix
        fromTime=123,
        to=123,
        destination='string',
        destinationPrefix='string'
    )
    
    • LogGroup 保留天数设置为最短的保留类别。届时,CW 中的所有日志都会过期。
    • 为属于较长保留类别的LogSteams 创建导出任务。
    • 创建expiry lifecycle rules in S3 以在设定的天数后自动删除对象。规则可以按对象前缀过滤,这很容易对应日志流名称。
    • 定期运行导出任务。

    【讨论】:

    • 非常感谢您帮我解决这个问题,我将立即开始研究这个解决方案:)
    猜你喜欢
    • 1970-01-01
    • 2022-01-11
    • 2020-11-11
    • 2021-04-13
    • 2022-01-20
    • 2020-10-17
    • 2016-02-18
    • 1970-01-01
    • 2020-12-01
    相关资源
    最近更新 更多