实时日志聚合和查询可使用什么工具?

5
我正在寻找一个工具/数据库/解决方案,可以帮助我聚合实时日志,并且也可以在实时中查询它们。
基本要求是能够尽快地提供结果,要考虑到可能有许多事件需要查询(可能达到数十亿),但是日志会有许多“列”,每个查询都会在这些列上设置一些条件,因此最终结果将是某种聚合,或者仅返回一小部分行。

目前我正在看HDFS+HBase,这似乎是一个不错的解决方案。还有其他替代方案吗?你能推荐些什么吗?

5个回答

3

Flume 可以帮助将日志写入 HDFS,但无法解决查询此数据的问题。 - wlk
@Wojtek:根据问题,我假设将使用Hadoop HDFS + HBase来整理/查询数据。 - Olaf
可能我还在寻找其他选择。但是Flume(+HBase sink)+ HBase + HDFS似乎是一个不错的选择。 - wlk

2

如果你想要实时解析/收集日志并对其进行处理,那么我的建议如下:

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

将日志中每一行作为XMPP消息发送到jabber用户sendloglineto@somejabberserver.com。该jabber用户通过您编写的客户端/软件连接(我更喜欢perl和Net::Jabber)。您可以编写客户端,以任何您想要处理每个XMPP消息的方式(例如存储在数据库中)。如果您将其存储在CouchDB中,则可以使用_changes API跟踪由CouchDB提供的特定数据库的更新。


2

这很不错,但我还在寻找一些有助于存储日志的东西(例如HDFS+HBase),因为似乎Calamaris仅能从本地存储的Web访问日志生成报告。Splunk可能过于复杂了,我只需要一层存储和查询引擎。 - wlk

1
虽然这是一个老问题,但我现在发布带有可用技术堆栈的答案...
  1. 数据摄取: Apache Flume或Spark Streaming或Spring XD或Kafka

  2. 数据存储和处理: HBASE(将原始数据存储在分阶段表中,根据需求将聚合数据存储在最终表中,根据搜索范围可以设计行键) + SparkonHbase

  3. 实时搜索: 带有Solr索引的Hbase

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

  5. 总体: Lambda架构


0

试试 Apache Kafka。对您的情况应该有帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接