【问题标题】:How do I retain apache logs in EC2 when using AWS auto-scaling使用 AWS 自动缩放时如何在 EC2 中保留 apache 日志
【发布时间】:2013-07-07 04:59:52
【问题描述】:

我们使用 AWS EC2 构建了一个网站,并在典型的 LAMP 堆栈 (ubuntu) 中自动扩展。

但是,扩展等效果很好,因为实例是“临时的”,我们的 apache 日志在负载高峰后不会保留(因为我们不保留卷或实例)。

是否有“最佳实践/最可靠”的方式来保留这些实例的 apache 日志?

一个想法是在关机期间将日志文件复制到 S3,方法是编写一个 bash 脚本以使用 /etc/rc0.d 功能执行(在关机时运行脚本)。

【问题讨论】:

  • 你在这里做了什么?我正在寻找相同的方法,但发现我在关机期间没有时间推送到 s3。
  • 我们采用了我建议的方法,这可能不可靠,请参见下面的链接(尽管到目前为止它运行良好)。 rdrey 提供的解决方案可能会更好。 docs.aws.amazon.com/AWSEC2/latest/UserGuide/… QUOTE:“如果您在实例终止时运行脚本,您的实例可能会异常终止,因为我们无法确保关闭脚本运行。Amazon EC2 尝试干净地关闭实例并运行任何系统关闭脚本; 但是,某些事件(例如硬件故障)可能会阻止这些系统关闭脚本运行。”

标签: logging amazon-web-services amazon-ec2 retain autoscaling


【解决方案1】:

“最佳做法”是将您的所有日志汇总到允许您存档和搜索它们的服务器上。您可以在 S3 和 Glacier 中备份旧日志。

要完成所有这些工作,您需要设置 apache 以编写每小时或每分钟的日志,并编写一个 cronjob 以将它们同步到某个中心位置或将它们上传到 S3。

查看http://logstash.net/ 了解可在您自己的实例上运行的开源聚合和搜索解决方案,查看http://loggly.com/ 了解非免费的完全托管解决方案。

编辑:我的第一个想法是“不要在关机时这样做”。您需要尽可能定期地同步日志文件,因此(例如,如果您做的是每分钟的日志),您将获得“近乎实时”的日志聚合/备份和搜索。

【讨论】:

  • 最好的解决方案是简单地将日志流式传输到实例生成日志之外的存储/服务。但是许多遗留应用程序根本不支持这一点,并且需要向后弯曲才能使这些简单的任务正常工作。类似“StreamLogAppender”的东西。
猜你喜欢
  • 2022-06-14
  • 1970-01-01
  • 2017-01-30
  • 2012-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-31
相关资源
最近更新 更多