因此,上下文是,我有一个生成日志的客户端应用程序,我希望偶尔将这些数据上传到后端。后端将充当分析服务器,存储、处理和显示这些数据--因此您可以想象会涉及到一些查询。
在数据收集高峰负载方面,我希望有大约5k个客户端,每个客户端每天生成50-100行数据,我希望解决方案能够处理这类数据。如果你算一算,那就是每月超过100万条日志线。
就数据分析负载而言,它将相当低--我希望我们中的一些人(管理员)每周从所有日志中运行一次查询来获取一些信息。
我的应用程序目前正在运行RoR + Postgres,但如果它更适合我的需要,则可以使用不同的dB。目前在我脑海中的竞争者是MongoDB & Cassandra,但我真的不想离开Postgres,如果它能按比例完成任务。
发布于 2014-01-15 04:00:27
根据我的经验,当您有大量日志时,您将需要一个搜索引擎来进行故障排除和分析,而不是使用数据库。(搜索引擎将比数据库更快。)
现在,我正在使用logstash+Elasticsearch+Kibana完全解决方案来构建我的日志系统。
这是Kibana演示网站。你可以去看看。http://demo.kibana.org/。它提供了搜索界面和分析工具,如饼图、表格等。
在我的项目中,我的应用程序每天生成超过150万条日志。这个日志系统可以处理所有这些日志。
尽情享受吧。
发布于 2014-01-15 01:35:27
为此,我推荐一个像logstash这样的专用工具:
http://logstash.net/
另一种选择是Apache Flume:
http://flume.apache.org/
发布于 2014-01-15 03:41:38
如果您正在寻找随着请求而增长的数据库解决方案,那么我建议您超越Postgres。
卡桑德拉非常适合时间序列数据,尽管键值存储不适合于临时分析。一种方法是将日志存储在Cassandra中,然后再将它们卷到另一个系统中。
为了直观地存储和显示数据,请看一看石墨,一个实时绘图项目。
您可以使用Graphite创建您自己的自定义图形,并将它们保存为仪表板。

https://stackoverflow.com/questions/21127485
复制相似问题