CloudWatch - 传输后删除日志
CloudWatch - Delete logs after transfered
我在我的 EC2 实例上设置了一个 CloudWatch,用于将日志传输到特定的日志组。
随着时间的推移,这些日志的大小会变得非常大,所以我想删除它们,例如,每周删除一次。
我想知道是否有任何选项可以从 EC2 实例设置自动清理使用 Cloudwatch 传输的日志?
实现该目标的最佳方法是什么?
要从 EC2 运行ning Linux 中删除日志文件,您有两个选择:
如果您使用的日志文件已经根据时间或其他值轮换,您可以使用 auto_removal
选项在日志代理完成后删除它们。参见 docs。
如果您使用的是不断更新的文件,则需要使用 logrotate
,这是一个由 CRON 调用的程序,可以重命名、压缩和删除旧文件.有一个很好的介绍文档 here.
如果您使用 logrotate
,这里有一个示例配置,我发现它对大量日志源很有用。如果文件达到 100 兆字节,它会执行轮换,而不是每天都轮换(您需要从 运行 到 cron.hourly
才能发挥作用)。最重要的是,它启用 copytruncate
,这将 运行 就地分类文件,允许程序继续写入它。
/var/log/filename.log {
rotate 7
daily
maxsize 100M
nodateext
missingok
notifempty
copytruncate
compress
delaycompress
}
我在我的 EC2 实例上设置了一个 CloudWatch,用于将日志传输到特定的日志组。
随着时间的推移,这些日志的大小会变得非常大,所以我想删除它们,例如,每周删除一次。
我想知道是否有任何选项可以从 EC2 实例设置自动清理使用 Cloudwatch 传输的日志?
实现该目标的最佳方法是什么?
要从 EC2 运行ning Linux 中删除日志文件,您有两个选择:
如果您使用的日志文件已经根据时间或其他值轮换,您可以使用
auto_removal
选项在日志代理完成后删除它们。参见 docs。如果您使用的是不断更新的文件,则需要使用
logrotate
,这是一个由 CRON 调用的程序,可以重命名、压缩和删除旧文件.有一个很好的介绍文档 here.
如果您使用 logrotate
,这里有一个示例配置,我发现它对大量日志源很有用。如果文件达到 100 兆字节,它会执行轮换,而不是每天都轮换(您需要从 运行 到 cron.hourly
才能发挥作用)。最重要的是,它启用 copytruncate
,这将 运行 就地分类文件,允许程序继续写入它。
/var/log/filename.log {
rotate 7
daily
maxsize 100M
nodateext
missingok
notifempty
copytruncate
compress
delaycompress
}