我在Amazon Web Services中启用了Auto Scaling创建的EC2实例 - 根据Webload实例自动创建和终止。如何从自动创建的实例中获取日志?
答案 0 :(得分:5)
以下是AWS开发者论坛上的一个主题,其中包含一些建议:
https://forums.aws.amazon.com/message.jspa?messageID=183672
由于您使用的是Auto Scaling,我认为NFS
和syslog
方法的可用性不足以处理您的日志负载。
该线程的共识是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教程