Ruby 构建分布式日志聚合器(如Splunk)的最佳组件堆栈是什么?
我正试图找到最好的组件,我可以用来构建类似于Splunk的东西,以便在计算网格中聚合大量服务器的日志。它也应该被分发,因为我每天都有大量的日志,没有一台机器能够存储日志 我特别感兴趣的东西将与Ruby一起工作,并将在Windows和最新的Solaris上工作(是的,我有一个动物园) 我认为建筑是:Ruby 构建分布式日志聚合器(如Splunk)的最佳组件堆栈是什么?,ruby,logging,hbase,hdfs,splunk,Ruby,Logging,Hbase,Hdfs,Splunk,我正试图找到最好的组件,我可以用来构建类似于Splunk的东西,以便在计算网格中聚合大量服务器的日志。它也应该被分发,因为我每天都有大量的日志,没有一台机器能够存储日志 我特别感兴趣的东西将与Ruby一起工作,并将在Windows和最新的Solaris上工作(是的,我有一个动物园) 我认为建筑是: 日志爬虫(Ruby脚本) 分布式日志存储 分布式搜索引擎 轻型前端 日志爬虫和分布式搜索引擎是毫无疑问的——日志将由Ruby脚本解析,ElasticSearch将用于索引日志消息。前端也很容易选择
- 日志爬虫(Ruby脚本)
- 分布式日志存储
- 分布式搜索引擎
- 轻型前端
- MongoDB被拒绝,因为它在Solaris上不工作李>
- CouchDB不支持分片(需要smartproxy才能工作,但我甚至不想尝试)
- Cassandra工作得很好,但它只占用磁盘空间,需要每天运行autobalance来在Cassandra节点之间分散负载李>
- HDFS看起来很有前途,但文件系统API仅限于Java,JRuby是一个难题李>
- HBase看起来是最好的解决方案,但部署它和监控只是一场灾难——为了启动HBase,我需要先启动HDFS,检查它是否启动时没有问题,然后启动HBase并检查它,然后启动REST服务并检查它
任何人都可以分享使用我上面描述的组件或完全不同的东西构建类似系统的想法或经验吗?关于Java和HDFS,使用像BeanShell这样的工具,您可以通过Javascript与HDFS存储交互 我建议使用将数据聚合到。您还可以使用for Flume实时更新搜索索引
更多信息,请参见。我尝试了JRuby,但结果证明它非常难看,也不太稳定。我想要一些与纯Ruby一起工作的东西。然后你应该在问题中添加一个Ruby标记。很抱歉