如何从Auto Scaling创建的EC2实例中获取日志?

时间:2010-06-17 12:43:32

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

我在Amazon Web Services中启用了Auto Scaling创建的EC2实例 - 根据Webload实例自动创建和终止。如何从自动创建的实例中获取日志?

4 个答案:

答案 0 :(得分:5)

以下是AWS开发者论坛上的一个主题,其中包含一些建议:

https://forums.aws.amazon.com/message.jspa?messageID=183672

由于您使用的是Auto Scaling,我认为NFSsyslog方法的可用性不足以处理您的日志负载。

该线程的共识是S3是保证存储的最佳选择。如果你走这条路线,处理/搜索你的日志可能会变成一件苦差事。

一个创造性的选择是创建一个MongoDB服务器/集群,可能通过简单的Web服务公开,以汇总来自 n 应用服务器的大量日志条目。我使用MongoDB来存储和分析一些非常庞大的指标/交易数据集(每天数十到数亿条记录),并且表现令人钦佩。

答案 1 :(得分:0)

如果你去s3的日志文件,我建议如果你期望一个相当大的 日志文件的大小,然后使用EMR来通过s3上的日志文件进行流失 按需或通过弹性数据管道作为预定工作。

答案 2 :(得分:0)

我个人按照以下方式获取自动缩放实例的日志。

我已在ec2实例上安装了AWS cloudwatch代理,并将所有日志发送到AWS cloudwatch日志。 根据环境创建了cloudwatch日志组。

https://medium.com/tensult/to-send-linux-logs-to-aws-cloudwatch-17b3ea5f4863

另一种方法是您可以配置AWS生命周期挂钩。您可以在其中设置钩子,并根据以下EC2缺陷状态发送日志。

autoscaling:EC2_INSTANCE_LAUNCHING
autoscaling:EC2_INSTANCE_TERMINATING

https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-lifecycle-hook.html

您还可以使用AWS EFS(弹性文件系统)。创建AWS EFS并使用AWS userdata(bootstrap)将其安装在自动缩放实例上,并提到您的Web服务器中已安装的AWS EFS目录的日志路径。

另一个选择是AWS s3fs。以上已经提到过了。 (但请确保AWS不为s3fs等第三方工具提供任何支持。)

答案 3 :(得分:0)

最佳方法是在您的实例上安装和配置aws cloudwatch日志代理,这是最佳实践,我已经实施了很多次,并且支持自动缩放实例

安装https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html

这是一个Ubuntu教程

https://www.petefreitag.com/item/868.cfm