3

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

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

4

2 回答 2

4

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

原因:

  • 插入和更新速度很快……每秒可以执行数千次
  • 除了普通查询,您还可以使用 JavaScript 运行分析并生成报告。你可以有一个每晚运行的 cron 作业,它对你的日志做了很好的 MapReduce 事情。
  • 您可以使用封顶集合(类似于队列的集合)来仅保留最新的 N KB/MB/GB 日志

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

另请参阅:有关日志记录的 MongoDB 博客文章

于 2010-01-08T00:04:11.683 回答
2

我正在使用 MongoDB 存储来自许多应用程序的日志,并且到目前为止运行良好。

您可能想查看我在 Mongo SV 和上一次 MongoDB SF Meetup上提供的关于将应用程序行为记录到 MongoDB 的演示文稿中的幻灯片,以了解更多关于为什么我认为它有利于记录的背景以及信息关于支持日志记录到 MongoDB 的 Java、Python、Ruby、PHP 和 C# 库。

我现在是 log4mongo-java、MongoDB 的 Log4J appenders 的主要提交者。所以,这就是我正在使用的东西可能并不令人惊讶。

关于日志完整性,我假设您的意思是确信它在写入后没有被修改。至少对于 log4mongo-java,您有一个选择,它将日志事件存储在需要身份验证的数据库中。这将在一定程度上限制可以添加、删除或更新事件的用户数量。

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

于 2011-01-23T02:48:20.263 回答