我们正在开发具有许多物理服务器的应用程序。我们希望使用NoSQL进行日志记录和跟踪,因为它不需要结构化数据。
我们不想进行集中日志记录。
我们可以在每个服务器中安装NoSQL(任何一个)并存储日志记录/跟踪详细信息吗? NoSQL会影响我在服务器中的实际进程吗?这样做是个好主意吗?
答案 0 :(得分:5)
许多人使用NoSQL解决方案存储应用程序日志。您可能面临的第一个挑战是如何通过易于管理可靠地从各种数据源收集大量数据。没有日志收集层的一个问题是由高写入吞吐量引起的数据库锁争用。
所以基本上建议使用日志收集层。有一些开源日志收集器实现,例如syslog,Fluentd,Scribe和Flume:)
下一个大问题是如何存储和处理数据。随着数据量的增加,后端基础架构需要进行大量更改。首先,您可以使用MongoDB存储所有数据,但有时您最终会使用Apache Hadoop来构建可大规模扩展的架构。
以下是使用Fluentd进行日志收集的示例架构,以及用于日志存储和处理的MongoDB。
以下是Fluentd将Apache日志放入Amazon S3,MongoDB或Hadoop HDFS的一些链接。
免责声明:我是Fluentd项目的提交者。
答案 1 :(得分:0)
绝对这是用nosql而不是sql做同样的事情的好主意。 因为在记录和跟踪中数据量很高而检索数据的比率也很高。
您需要记录和跟踪需要复杂的报告进行分析,因此nosql更适合您。
还 nosql支持分布式环境,因此您可以在不同的地理位置创建基础架构。