什么用于实时日志聚合和查询?

时间:2011-04-16 21:03:52

标签: logging real-time hbase


我正在寻找可以帮助我聚合实时日志的工具/数据库/解决方案,并且可以实时查询它们。
基本要求是能够尽快交付结果,请记住,可能有许多事件需要查询(可能是数十亿),但是日志会有很多“列”,每个查询都会在这些列上设置一些条件,所以最终结果将是某种聚合,或者只返回一小部分行。

现在我正在研究HDFS + HBase,这似乎是一个很好的解决方案。还有其他选择吗?你能推荐什么吗?

5 个答案:

答案 0 :(得分:3)

您可以查看Flume:https://github.com/cloudera/flume/wiki

答案 1 :(得分:2)

您可以查看calamaris。在商业世界中,有Splunk

答案 2 :(得分:2)

如果您尝试实时解析/收集日志,并对其执行某些操作,那么我的推荐如下:

# tail --follow=name --retry /var/log/logfile.log | sendxmpp -i -u username -p password -j somejabberserver.com sendloglineto@somejabberserver.com

这会将日志中的每一行发送给jabber用户sendloglineto@somejabberserver.com,因为它显示为XMPP消息。那个jabber用户将是通过你编写的客户端/软件连接的(我更喜欢perl和Net :: Jabber)。您可以对客户端进行编程,以便对每个XMPP消息执行任何操作(例如,存储在数据库中)。如果将其存储在CouchDB中,则可以使用_changes API来跟踪CouchDB提供的特定数据库的更新。

答案 3 :(得分:2)

尽管如此,这是一个老问题,我现在可以通过技术堆栈发布答案......

  1. 数据摄取:Apache Flume或Spark流媒体或Spring XD或Kafka

  2. 数据存储和处理:HBASE(登台表中的原始数据和最终表中的聚合数据,根据要求,基于搜索范围,可以设计行键)+ SparkonHbase

    < / LI>
  3. 实时搜索:带有solr索引的Hbase

  4. 报告(可选):tableu或Banana(开源)

  5. 总体而言:Lambda architecture

答案 4 :(得分:0)

尝试Apache Kafka。它应该对您的案例有帮助