您是否有登录NoSQL数据库以获取可扩展应用程序的经验?我对用于日志(log)记录的NoSQL数据库进行了一些研究,发现MongoDB似乎是一个不错的 Select .此外,我还发现了log4mongo-net,这似乎是一个非常简单的 Select .
你会推荐这种方法吗?还有其他建议吗?
您是否有登录NoSQL数据库以获取可扩展应用程序的经验?我对用于日志(log)记录的NoSQL数据库进行了一些研究,发现MongoDB似乎是一个不错的 Select .此外,我还发现了log4mongo-net,这似乎是一个非常简单的 Select .
你会推荐这种方法吗?还有其他建议吗?
我决定修改这个公认的答案,因为在过go 18个月里,最先进的技术有了显著的进步,而且还有更好的替代方案.
New Answer
MongoDB是可伸缩日志(log)记录解决方案的次标准 Select .这通常是有原因的(例如在负载下的写性能).我想再提一个,它只解决日志(log)解决方案中的一个用例.
一个强大的日志(log)解决方案至少需要涵盖以下几个阶段:
MongoDB作为一种 Select ,只能解决存储用例(尽管有点糟糕).一旦分析了整个链条,就有了更合适的解决方案.
@KazukiOhta提到了几个选项.如今,我首选的端到端解决方案包括:
Elastic搜索用于日志(log)数据存储的基本用途是使用当前最好的NoSQL解决方案来记录和搜索用例.事实上,Logstash Forwarder/Logstash/Elastic搜索/Kibana3在Elastic搜索人的保护伞下,这是一个更具说服力的论点.
由于Logstash还可以充当Graphite代理,因此可以为收集和分析度量(而不仅仅是日志(log))的相关问题构建一个非常类似的链.
Old Answer
MongoDB Capped 收集s和suitable for logging非常受欢迎,还有一个额外的优点是"无模式",这通常是一种适合于日志(log)记录的语义.通常,我们只知道我们想要在项目中记录什么,或者在生产中发现某些问题之后.在这些情况下,关系数据库或严格的模式往往很难更改,试图使它们"灵活"往往只会使它们"缓慢",难以使用或理解.
但如果你想manage your logs in the dark and have lasers going and make it look like you're from space,总有Graylog2使用MongoDB作为其整体基础设施的一部分,但提供了更多的基础设施,如通用的、可扩展的格式、专用的日志(log)收集服务器、分布式体系 struct 和时髦的UI.