Amazon web services 如何按日期删除所有cloudwatch日志组和流?

Amazon web services 如何按日期删除所有cloudwatch日志组和流?,amazon-web-services,aws-sdk,amazon-cloudwatch,Amazon Web Services,Aws Sdk,Amazon Cloudwatch,使用AWS一段时间后,我发现我的cloudwatch充满了过时的日志,有没有办法按日期删除所有日志组和流?因此,我可以清除所有上一年的日志。默认情况下,日志无限期保留 如何按日志组设置此项: 日志保留默认情况下,日志无限期保留,永不过期。您可以调整每个日志组的保留策略,保留无限期保留,或选择10年到一天之间的保留期。 更多信息请点击此处: 虽然您可以像@DominikHelps所说的那样在流上设置保留期,但这只是删除消息;它不会删除流本身 您可以使用CLI查找日志组的流及其创建时间: aws l

使用AWS一段时间后,我发现我的cloudwatch充满了过时的日志,有没有办法按日期删除所有日志组和流?因此,我可以清除所有上一年的日志。

默认情况下,日志无限期保留

如何按日志组设置此项:

日志保留默认情况下,日志无限期保留,永不过期。您可以调整每个日志组的保留策略,保留无限期保留,或选择10年到一天之间的保留期。

更多信息请点击此处:

虽然您可以像@DominikHelps所说的那样在流上设置保留期,但这只是删除消息;它不会删除流本身

您可以使用CLI查找日志组的流及其创建时间:

aws logs describe-log-streams --log-group-name Example --output text --query 'logStreams[*].[creationTime,logStreamName]' | sort -rn
这将为您提供如下输出:

1544374120302   stream1
1544373223032   stream2
1544365017774   stream3
这些数字是历元时间戳,以毫秒为单位。您可以使用类似的工具将它们转换为人类可读的时间戳。然后,确定要删除的流后,可以再次使用CLI:

aws logs delete-log-stream --log-group-name Example --log-stream-name stream1

这是一个相当简单的步骤,从手工操作到将其作为一个工作来完成。如果您不介意编程,请将其转换为Lambda,由CloudWatch事件计划事件调用。

是否删除流或其中的数据。@Unbreakable我认为它只删除事件。我已将所有日志组的保留设置为在1天后过期,但我看到的流已超过一个月,但其中的事件为空。@非常感谢!!我会花很多时间试图弄清楚,而不是仅仅点击其中一个流就看不到任何数据