【发布时间】:2011-07-07 12:20:56
【问题描述】:
我目前正在将我网站上的每个“失败”(登录/注册/等)记录到数据库中,以便我可以监控是什么让我的用户遇到困难 - 或者哪些 ips/用户正在做可疑的事情。
但是,我发现我真的只需要大约一周左右的数据,因为我每天都检查它,并且最多需要查看过去一周的活动。
我在想,也许我应该尝试保存我的数据库从所有这些日志记录中承受的一些负载,并将数据放在 memcached 或 couchdb 之类的东西中。但是,我不确定如何将数据查询到结果集中。
如何使用键值对存储或文档数据库来监控日志并跟踪活动之间的关系? 是否值得向服务器添加另一个数据存储或只保留数据库从处理它?我提到 memcached 和 couchdb 是因为如果需要,两者的 RAM 使用率都非常低(与 mongodb 和 redis 不同)。
让我举个例子。 IP 0.0.0.0 在 3 小时内登录失败 37 次(每次记录),它还在 2 小时内为有效电子邮件重置密码 84 次失败。多亏了我的日志,我现在可以研究(并阻止)这个机器人。另一方面,我看到在 5827 个注册用户中 - 有 2188 次注册尝试失败。这告诉我,我的注册表单有问题,导致许多人至少有一次未能通过该表单。
再次,赏金是一个使用键值或文档存储来记录数据的工作示例。
【问题讨论】:
-
“我不确定如何将数据查询到结果集中”?为什么不?你读了什么?任何文档数据库(或键值存储)都非常非常好地做到了这一点。你为什么不确定?你不确定什么?您想知道如何在没有 SQL 的情况下进行查询吗?
-
我不确定如何将数据查询到结果集中。我很确定它可以完成 - 我只是不知道怎么做。
-
到目前为止,您在 memcached 或 couchdb 上读到了什么?请提供具体的链接或报价,以便我们知道您在说什么。两者都有非常简单的 API,使得检索数据变得非常简单。
-
我不确定如何将数据查询为有用的格式。我没有任何链接,因为我不知道该怎么做。获取数据是一回事 - 将数据查询到有组织的结果中是另一回事。您如何使用其中任何一个来汇总数据以模拟我发布的示例?
-
至强,我们在这里谈论多少数据? 500 万行/天? 5000 万行?多少个网络服务器? 1、5、100?你是在 Linux 还是 Windows 上工作?我有几个想法给你,但我想确保在我开始提出解决方案之前了解你的范围和规模。 :)
标签: database logging memcached nosql key-value