Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 构建分布式日志聚合器(如Splunk)的最佳组件堆栈是什么?_Ruby_Logging_Hbase_Hdfs_Splunk - Fatal编程技术网

Ruby 构建分布式日志聚合器(如Splunk)的最佳组件堆栈是什么?

Ruby 构建分布式日志聚合器(如Splunk)的最佳组件堆栈是什么?,ruby,logging,hbase,hdfs,splunk,Ruby,Logging,Hbase,Hdfs,Splunk,我正试图找到最好的组件,我可以用来构建类似于Splunk的东西,以便在计算网格中聚合大量服务器的日志。它也应该被分发,因为我每天都有大量的日志,没有一台机器能够存储日志 我特别感兴趣的东西将与Ruby一起工作,并将在Windows和最新的Solaris上工作(是的,我有一个动物园) 我认为建筑是: 日志爬虫(Ruby脚本) 分布式日志存储 分布式搜索引擎 轻型前端 日志爬虫和分布式搜索引擎是毫无疑问的——日志将由Ruby脚本解析,ElasticSearch将用于索引日志消息。前端也很容易选择

我正试图找到最好的组件,我可以用来构建类似于Splunk的东西,以便在计算网格中聚合大量服务器的日志。它也应该被分发,因为我每天都有大量的日志,没有一台机器能够存储日志

我特别感兴趣的东西将与Ruby一起工作,并将在Windows和最新的Solaris上工作(是的,我有一个动物园)

我认为建筑是:

  • 日志爬虫(Ruby脚本)
  • 分布式日志存储
  • 分布式搜索引擎
  • 轻型前端
日志爬虫和分布式搜索引擎是毫无疑问的——日志将由Ruby脚本解析,ElasticSearch将用于索引日志消息。前端也很容易选择-Sinatra

我的主要问题是分布式日志存储。我研究了MongoDB、CouchDB、HDFS、Cassandra和HBase

  • MongoDB被拒绝,因为它在Solaris上不工作
  • CouchDB不支持分片(需要smartproxy才能工作,但我甚至不想尝试)
  • Cassandra工作得很好,但它只占用磁盘空间,需要每天运行autobalance来在Cassandra节点之间分散负载
  • HDFS看起来很有前途,但文件系统API仅限于Java,JRuby是一个难题
  • HBase看起来是最好的解决方案,但部署它和监控只是一场灾难——为了启动HBase,我需要先启动HDFS,检查它是否启动时没有问题,然后启动HBase并检查它,然后启动REST服务并检查它
所以我被卡住了。有人告诉我,HDFS或HBase是用作日志存储的最佳选择,但HDFS只能在Java中顺利工作,而HBase只是部署/监视的噩梦


任何人都可以分享使用我上面描述的组件或完全不同的东西构建类似系统的想法或经验吗?

关于Java和HDFS,使用像BeanShell这样的工具,您可以通过Javascript与HDFS存储交互

我建议使用将数据聚合到。您还可以使用for Flume实时更新搜索索引


更多信息,请参见。

我尝试了JRuby,但结果证明它非常难看,也不太稳定。我想要一些与纯Ruby一起工作的东西。然后你应该在问题中添加一个Ruby标记。很抱歉