我正在寻找可以帮助我聚合实时日志的工具/数据库/解决方案,并且可以实时查询它们。
基本要求是能够尽快交付结果,请记住,可能有许多事件需要查询(可能是数十亿),但是日志会有很多“列”,每个查询都会在这些列上设置一些条件,所以最终结果将是某种聚合,或者只返回一小部分行。
现在我正在研究HDFS + HBase,这似乎是一个很好的解决方案。还有其他选择吗?你能推荐什么吗?
答案 0 :(得分:3)
您可以查看Flume:https://github.com/cloudera/flume/wiki。
答案 1 :(得分:2)
答案 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)
尽管如此,这是一个老问题,我现在可以通过技术堆栈发布答案......
数据摄取:Apache Flume或Spark流媒体或Spring XD或Kafka
数据存储和处理:HBASE(登台表中的原始数据和最终表中的聚合数据,根据要求,基于搜索范围,可以设计行键)+ SparkonHbase
< / LI>实时搜索:带有solr索引的Hbase
报告(可选):tableu或Banana(开源)
总体而言:Lambda architecture
答案 4 :(得分:0)
尝试Apache Kafka。它应该对您的案例有帮助