如何使用 cloudformation 或 yaml 将保留天数设置为日志流
How to set retention days to a logstream with cloudformation or yaml
所以,我一直在为这个任务来回工作。
我有 AWS CloudWatch 日志,我必须在其中将保留策略应用于日志组的某些日志流
日志组:“我的日志组”
在里面我有不同的日志流
日志流-a
日志流-b
我想做的是为每个日志流设置不同的保留天数。
Logstream-a = 180 天
日志流-b = 90 天
我发现我可以将保留设置设置为 YAML 中的日志组,但我不能对日志流执行此操作。
CloudWatchLogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName: MyLoggroup
RetentionInDays: 180
有什么方法可以使用 Python、Cloudformation 或 YAML 将保留设置应用于 LogStream?
正如您已经发现的,您可以 set log retention LogGroups
,但不能 LogStreams
。
您可以使用 CloudWatch S3 exports to differentiate retention by LogStream
indirectly. What makes S3 exports work for your use case is that 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 以在设定的天数后自动删除对象。规则可以按对象前缀过滤,这很容易对应日志流名称。
- 运行定期导出任务。
所以,我一直在为这个任务来回工作。
我有 AWS CloudWatch 日志,我必须在其中将保留策略应用于日志组的某些日志流
日志组:“我的日志组” 在里面我有不同的日志流 日志流-a 日志流-b
我想做的是为每个日志流设置不同的保留天数。
Logstream-a = 180 天 日志流-b = 90 天
我发现我可以将保留设置设置为 YAML 中的日志组,但我不能对日志流执行此操作。
CloudWatchLogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName: MyLoggroup
RetentionInDays: 180
有什么方法可以使用 Python、Cloudformation 或 YAML 将保留设置应用于 LogStream?
正如您已经发现的,您可以 set log retention LogGroups
,但不能 LogStreams
。
您可以使用 CloudWatch S3 exports to differentiate retention by LogStream
indirectly. What makes S3 exports work for your use case is that 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 以在设定的天数后自动删除对象。规则可以按对象前缀过滤,这很容易对应日志流名称。
- 运行定期导出任务。