MongoDB存储不同的(架构)日志文件

时间:2010-01-07 07:26:51

标签: logging mongodb

您认为使用MongoDB Json数据库存储应用程序中的日志文件是一个好主意,为什么?

对我来说唯一的优势是架构抽象,但我认为它也是一个弱点,我们无法确保日志文件的完整性。

2 个答案:

答案 0 :(得分:4)

显然我有偏见(我在MongoDB上工作),但我认为它对日志非常有效。

原因:

  • 插入和更新速度很快......你可以做到每秒数千次
  • 与普通查询一样,您可以使用分析和生成报告 JavaScript的。你可以在夜间运行一个cron工作,这很好 MapReduce到您的日志。
  • 您可以使用上限集合,这些集合就像队列一样 仅保留最新的N KB / MB / GB日志

我不确定你的意思是“确保日志文件的完整性”......你是说你担心不知道你要拔出的文件有哪些字段?如果是这样,我认为你会发现在关系数据库中处理空字段并不困难,而且更加灵活。

另请参阅:the MongoDB blog post on logging

答案 1 :(得分:2)

我正在使用MongoDB来存储来自许多应用程序的日志,到目前为止它的运行情况非常好。

您可能想看看我在Mongo SV和上一次MongoDB SF Meetup上提供的slides from a presentation on Logging Application Behavior to MongoDB,了解更多关于我认为它对日志记录有用的原因,以及有关库的信息支持Java,Python,Ruby,PHP和C#,支持记录到MongoDB。

我现在是log4mongo-java的主要提交者,MongoDB的Log4J appender。所以,我正在使用它可能并不太令人惊讶。

关于日志完整性,我认为你的意思是它在编写后没有被修改过。您有一个选项,至少使用log4mongo-java,它将日志记录事件存储在需要身份验证的数据库中。这将在一定程度上限制可以添加,删除或更新事件的用户数量。

此外,您可以设置紧密锁定的复制从站。频繁备份从站至少会限制可以修改记录事件集的时间。