首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从文件日志记录到数据库日志记录

从文件日志记录到数据库日志记录
EN

Stack Overflow用户
提问于 2012-08-14 22:57:38
回答 3查看 5K关注 0票数 2

我们目前正在考虑从日志记录到文件,再到日志记录到NoSQL数据库。我们公司的另一个团队正在开始使用HBase,但对于我们想要做的事情来说,这看起来相当复杂。我一直在研究MongoDB,但我想要一些建议。

目前,我们在服务器场中有数百台服务器用于不同的应用程序。每当我们从应用程序中听到一个问题时,都会有一个很长的过程,从应用程序运营处检索日志,然后再通过一个很长的过程来筛选所有的日志来发现问题。我们正在考虑将所有的日志移动到一个中心位置,并围绕它构建一个web UI,这样我们就可以更容易地访问和查询日志。

哪种NoSQL数据库最适合存储和查询应用程序日志?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-17 14:21:09

我看到很多公司都在使用MongoDB来存储应用程序日志。它的模式无关性对于应用程序日志来说是非常灵活的,在这种情况下,模式往往会随时改变。此外,它的Capped Collection功能非常有用,因为它会自动清除旧数据,以便将数据保存到内存中。

人们通过普通分组或MapReduce来聚合日志,但它并不是那么快。特别是MongoDB的MapReduce只能在单个线程中工作,而且它的JavaScript执行开销很大。New aggregation framework可以解决这个问题。

当您使用MongoDB进行日志记录时,需要考虑的问题是高写入吞吐量带来的锁争用。尽管MongoDB的insert在默认情况下是“一发即忘”式的,但大量调用insert()会导致严重的写锁争用。这可能会影响应用程序性能,并阻止读取器聚合/过滤存储的日志。

一种解决方案可能是使用日志收集器框架,如FluentdLogstashFlume。这些守护进程应该在每个应用程序节点上启动,并从应用程序进程中获取日志。

它们缓冲日志,并将数据写出到其他系统,如MongoDB / PostgreSQL /等。写入是由batches完成的,因此它比直接从应用程序写入效率要高得多。此链接描述了如何从PHP程序将日志放入Fluentd中。

  • Fluentd: Data Import from PHP Applications

这里有一些关于MongoDB + Fluentd的教程。

10gen blog

  • Fluentd: Store Apache Logs into MongoDB

上的

  • Fluentd + MongoDB: The Easiest Way to Log Your Data Effectively

MongoDB的问题是,当数据量超过内存大小时,它就会开始变慢。此时,您可以切换到其他解决方案,如Apache HadoopCassandra。如果你有一个上面提到的分布式日志记录层,你可以随着你的增长切换到另一个解决方案。本教程将介绍如何使用Fluentd将日志存储到HDFS。

  • Fluentd: Fluentd + HDFS: Instant Big Data Collection
票数 6
EN

Stack Overflow用户

发布于 2017-01-19 04:54:57

延迟响应,但此案例看起来非常适合:

Logstash:

的服务器组件,用于处理传入的日志

Elasticsearch:存储所有日志

Kibana:用于搜索和可视化日志的Web界面

您可以使用Logstash Forwarder将日志发送到Logstash。它充当日志转发代理。您可以监视各种格式的日志文件、数据库和消息存储,并将它们上传到Elasticsearch DB。在此之后,您可以使用Kibana web ui来查看所有内容。请勿为此使用SQL/NoSQL数据库构建自定义解决方案。

Splunk是另一个类似架构的商业解决方案。

如果需要超实时性能,请查看基于Kafka的解决方案。

更多信息:https://www.digitalocean.com/community/tutorials/how-to-use-logstash-and-kibana-to-centralize-and-visualize-logs-on-ubuntu-14-04

https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying

票数 1
EN

Stack Overflow用户

发布于 2012-08-15 04:02:37

Couchbase 2.0 (目前在开发者预览版中,但很快就会成为Beta版)为此提供了一个高性能的选项。在日志记录的情况下,您将需要非常快的写入速度,视图和视图查询将提供读取/搜索/查询的灵活性。Couchbase 2.0还将通过Elastic search集成实现全文搜索。

查看:www.couchbase.com

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11955131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档