logging - 从 Amazon EC2 实例收集日志的好方法是什么?

标签 logging amazon-s3 amazon-ec2

我的应用程序托管在 Amazon EC2 集群上。每个实例将事件写入日志文件。我需要在每天结束时收集(和数据挖掘)这些日志。在中央位置收集这些日志的推荐方法是什么?我想了几种选择,不知道该走哪条路:

  1. 使用 cron 作业将它们发送到实例
  2. 通过 TCP/IP 将所有事件记录到实例

最佳答案

我们使用Logstash在每个主机上(通过 Puppet 部署)收集日志事件并将其发送到中央主机上的消息队列(RabbitMQ,但可以是 Redis)。另一个 Logstash 实例检索事件,处理它们并将结果填充到 ElasticSearch 。一个Kibana Web 界面用于搜索该数据库。

它的功能非常强大,可以轻松扩展并且非常灵活。 Logstash 有大量的过滤器来处理来自各种输入的事件,并且可以输出到许多服务,ElasticSearch 就是其中之一。目前,我们每天从 EC2 实例在轻型硬件上发送约 120 万个日志事件。在我们的设置中,日志事件从事件到可搜索的延迟约为 1 秒。

以下是有关此类设置的一些文档:https://www.elastic.co/guide/en/logstash/current/getting-started-with-logstash.html以及带有一些实时数据的 Kibana 搜索界面演示。

关于logging - 从 Amazon EC2 实例收集日志的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1761609/

相关文章:

amazon-web-services - 只有在我的 EC2 实例服务器上为 Laravel 4 工作的主路由

linux - 除了 syslog 之外,Linux 服务/守护程序文件日志记录最佳实践是什么?

java - Amazon EMR : java. io.IOException:文件已存在:s3n://<bucketname>/output/part-r-00002

mysql - 在 VPC 内的 AWS EC2 上创建 RDS 用户

amazon-s3 - 从S3到DynamoDB的AWS数据管道CSV数据

python - 在 python 脚本中,我有插入查询,但是当我想在同一个查询中插入多个列时,它会给出错误

amazon-web-services - 如何以编程方式创建ami实例?

logging - logback 日志中的文本长度限制

c++ - 如何在 boost log 2.0 中设置 std::ios_base 标志,如 std::left?

azure - 为什么 Azure 日志记录每 12 小时就会自行禁用一次?