0

我正在寻找一些指针来改进以下问题的解决方案。尽管我正在使用 Unix 工具链,但我更喜欢通用方法而不是实现。

开始了:

应该记录对网站的每次访问,并且业务用户应该能够近乎实时地报告它(可以接受 5 分钟的延迟)。报告将按用户或时间段或两者的组合进行过滤。

匿名用户访问也会被记录,一旦匿名用户登录,登录前的信息应与注册用户相关联。

我想记录每个页面访问(GET 或 POST)以及任何参数和时间戳。

报告要求是:“告诉我用户 ID 1 在上午 11:15 到上午 11:18 之间做了什么”

响应应该是:

  • 11:15:23,他来到了首页。
  • 11:15:49 他去了关于我们的页面。
  • 11:16:23,他进入登录页面。
  • 在 11:16:34,他尝试使用用户名“hacked”登录。
  • 11:16:38 登录请求失败 - 用户名/密码不正确
  • 在 11:16:45,他使用用户名“myuser”登录
  • 11:17:12,他去了产品页面。

一种解决方案是使用会话 ID 作为主键和帐户 ID 以及请求数据将所有这些插入到数据库中。

为了不让数据库陷入困境,在两者之间插入一个消息队列并延迟对数据库的写入。

但是,由于数据库中的数据量很大,报告可能很快就会变慢。

我知道诸如woopra之类的解决方案- 但是我想在内部保留访问者数据,并且还喜欢通过基于内部角色的数据访问等进行内部报告的想法。

编辑:你过去是怎么做这样的事情的,或者如果你有一个完整的选择,你会怎么做?

4

1 回答 1

0

立即执行其中一些事情的一种更简单的方法是在您的服务器/应用程序上实施谷歌分析,而不需要太多开销。

使用它的缺点是事件不是实时的……它需要几个小时的时间。

另一种解决方案是将消息传递解决方案实施到单独的数据库,然后重新

于 2011-06-01T14:56:30.007 回答