0

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

4

4 回答 4

5

这是 AWS 开发人员论坛上的一个主题,其中包含一些建议:

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

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

该线程的共识是 S3 是保证存储的最佳选择。如果你走这条路,处理/搜索你的日志可能会变得有点麻烦。

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

于 2011-01-13T09:25:00.453 回答
1

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

我已经在 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 等第三方工具提供任何支持。)

于 2020-01-02T12:16:44.430 回答
0

如果您使用 s3 获取日志文件,如果您期望大量的日志文件,我建议您使用 EMR 在 s3 上根据需要或通过弹性数据管道作为计划作业来搅动日志文件。

于 2013-03-05T22:20:49.160 回答
0

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

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

这是一个 ubuntu 教程

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

于 2020-01-02T12:42:00.187 回答