将Scribe集中式日志记录输出发送到elasticsearch的最佳方法

时间:2014-10-23 21:54:37

标签: logging elasticsearch logstash scribe

我们目前正在为众多服务构建集中式日志记录平台。计划是在每个应用程序服务器上安装一个scribe客户端,它将日志转发到中央划线服务器。

中央划线服务器当前正在将所有聚合日志记录到磁盘。但现在我们想在ElasticSearch上对它们进行索引以实现可视化。

我的确切问题是:将日志从中央划线服务器的输出转发到ElasticSearch进行索引的最佳方法(最强大,容错,计算成本较低且内存效率最高)是什么?

很少有值得探索的想法:

  1. Scribe Server - >档案 - > Logstash - > ElasticSearch
  2. Scribe Server - >档案 - > [X] - > RabbitMQ - > Logstash - > ElasticSearch
  3. Scribe Server - >档案 - > [Y] - > ElasticSearch
  4. Scriber Server - > [Z] - >弹性搜索
  5. X,Y或Z有什么好的选择吗?哪一个是最好的方法?请建议。

    感谢。

1 个答案:

答案 0 :(得分:0)

据我说Z选项是最好的方法。 ElasticSearch适用于容错系统。该机制有shard和replica定义。但是你必须考虑内存效率。索引文档的计数将随着时间的推移而增加,并且需要至少2倍的存储空间,因为默认配置文件中只有一个分片和一个副本定义。

编辑:
如果您已经有一个中央划线服务器,我假设您的中央服务器上有所有日志消息。但是,如果您的中央服务器没有消息传递结构,则所有选项都可用于您的应用程序。如果要异步实现索引,可以使用RabbitMQApache solition。我认为您可以查看弹性搜索performance considerations以进行索引。你的每秒索引计数是多少?这对你的应用程序至关重要吗?我的另一个建议是MongoDB。如果您不坚持ElasticSearch,我建议您搜索MongoDB。你应该查看comparison.