如何删除所有cloudwatch日志组并按日期流?

时间:2018-12-18 08:51:56

标签: amazon-web-services aws-sdk amazon-cloudwatch

使用AWS一段时间后,我发现我的cloudwatch充满了过时的日志,是否可以按日期删除所有日志组和流?这样我就可以清除以前所有的日志。

2 个答案:

答案 0 :(得分:0)

默认情况下,日志会无限期保存。

您如何按日志组进行设置:

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

更多信息在这里: https://docs.aws.amazon.com/en_en/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html

答案 1 :(得分:0)

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

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

this.network.onDisconnect().subscribe(() => {
  //You will enter here everytime the connection is lost
})

this.network.Connect().subscribe(() => {
  //You will enter here everytime the connection is retrieved
})

这将为您提供如下输出:

aws logs describe-log-streams --log-group-name Example --output text --query 'logStreams[*].[creationTime,logStreamName]' | sort -rn

数字是纪元时间戳,以毫秒为单位。您可以使用this之类的工具将其转换为人类可读的时间戳。然后,一旦确定了要删除的流,就可以再次使用CLI:

1544374120302   stream1
1544373223032   stream2
1544365017774   stream3

从手动执行到作为cronjob进行,这是一个相当简单的步骤。而且,如果您不介意进行编程,可以将其转换为由CloudWatch Events计划事件调用的Lambda。