amazon-web-services - CloudWatch - 传输后删除日志
问题描述
我在我的 EC2 实例上设置了 CloudWatch,以将日志传输到特定的日志组。
随着时间的推移,这些日志的大小可能会变得非常大,因此我想删除它们,例如,每周一次。
我想知道是否有任何选项可以从 EC2 实例设置自动清理,使用 Cloudwatch 传输日志?
实现这一目标的最佳方法是什么?
解决方案
要从运行 Linux 的 EC2 中删除日志文件,您有两种选择:
如果您正在使用已根据时间或其他值轮换的日志文件,您可以使用
auto_removal
选项在日志代理完成后删除它们。请参阅文档。如果您使用的是不断更新的文件,则需要使用
logrotate
,这是一个由 CRON 调用的程序,它将重命名、压缩和删除旧文件。这里有一个很好的介绍文档。
如果您使用logrotate
,这里有一个示例配置,我发现它对大容量日志源很有用。如果文件达到 100 兆字节,它会执行轮换,而不是每天都这样做(您需要运行它cron.hourly
以使其有用)。最重要的是,它启用copytruncate
了 ,它将原地截断文件,允许程序继续写入它。
/var/log/filename.log {
rotate 7
daily
maxsize 100M
nodateext
missingok
notifempty
copytruncate
compress
delaycompress
}
推荐阅读
- r - 有没有办法将分类变量变成数字(R)?
- google-cloud-platform - 在数据流中完成 BQ 写入后的 Apache Beam 写入状态信息
- r - 想通过在适当的位置添加零来格式化时间字符以使用 R 格式化 00:00:00 标准
- javascript - replaceWith() 它适用于偶数标签,但奇数标签不起作用..为什么?
- c# - 没有注册类型“Microsoft.AspNet.Identity.UserManager”的服务
- java - 仅引用其副本时如何更新我的二叉搜索树的顶部节点
- java - 读取 Url 并获取 json 并使用 android 和 java 在 json 中设置参数并获取 json 的值并读取它
- python-3.x - 为什么我的网络上的设备会出现 ping 延迟?(Python 操作系统模块)
- ruby-on-rails - Rails 将值保存到数据库超出限制
- events - 简单的例子只能在第一次正常工作,为什么?