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