目前,我们存储了大量日志(30G /天x3机器= av.100G)的文件管理器。日志是压缩的。
搜索日志的实际工具是搜索相应的日志(根据时间范围),复制它们,解压缩它们,然后搜索xml以获取信息和显示。
我们正在研究制作类似spunk的工具来搜索日志的可能性(它是消息总线的输出:发送到其他系统的xml消息)。
依赖类似mongo的数据库有什么好处,而不是直接查询压缩的日志文件? 我们还可以索引数据库中的一些数据,让程序搜索目标zip文件...... 什么带来了mongodb ......或hadoop?
答案 0 :(得分:1)
我曾在MongoDB工作过,目前正在研究Hadoop,所以我可以列出一些您可能感兴趣的差异。
总结一下:如果你可以在整个堆栈中实现基于mongoDB的日志记录去MongoDB,但如果你已经有了文本格式日志,那就去Hadoop吧。如果您可以实时将XML数据转换为MongoDB文档,那么您可以获得非常有效的解决方案。
答案 1 :(得分:0)
我对Hadoop的了解有限,所以我将专注于MongoDB。
您可以将每个日志条目存储在MongoDB中。在时间字段上创建索引时,可以轻松获得特定的时间范围。 MongoDB will have support for full text search in version 2.4这对于您的用例肯定是一个有趣的功能,但它还没有生产就绪。在那之前,搜索子串是一个非常缓慢的操作。因此,您必须将与搜索相关的XML树转换为mongodb对象,并为搜索次数最多的字段创建索引。
但是你应该知道将日志存储在MongoDB中意味着你将需要更多的硬盘空间。 MongoDB不会压缩有效负载数据,也会增加一些自己的元数据开销,因此它需要比解压缩日志更多的磁盘空间。此外,当您使用新的文本搜索功能时,它将占用更多的磁盘空间。在我看到的演示文稿中,文本索引是索引数据的两倍。当然,这个功能仍在进行中,但我不会打赌它在最终版本中会少得多。