我在寻找,做一般包括以下解决每一个用户动作:Rails的解决方案记录可以查询后
- 记录每一个用户的操作。如果可能,以控制器名称,操作和参数的形式,并且仅记录实际更改为模型对象的内容。
- 例如,一个控制器可能会得到很长的参数列表,但只有其中的两个实际保存到模型对象 - 我想知道哪些属性发生了变化。
- 这些数据可以查询 - 例如,查找的用户的行为历史上的CRM应用
我们有多个应用程序共享模式设置(全部击中同一个数据库),所以我们能够记录数据来自哪个应用程序。这是我们想要实现这样的事情的地方,位于我们应用程序常见的中心位置。
之所以这样做,是因为我们在事后做了大量的取证 - 我们被要求检查是谁将某些内容更改为记录,所以我们经常需要转到生产日志并在那里搜索该信息。如果可能,我们希望能够使用标准SQL来查询它。
这样做的另一个原因是因为不同的开发人员拥有不同的应用程序,有时候某些应用程序的行为不像应该那样。如果我能够查找哪个应用程序将特定值保存到模型对象中,那会有所帮助。
关于我们将要查看的控制器名称/操作,我们没有任何模式 - 我们在某些模型上添加了审计逻辑,但是随后我们会被要求检查某个不同的模型,为...建立审计。
如果有意义,我们愿意使用像Redis这样的东西来达到此目的。我与Redis合作的经验极少,不确定Redis是否能够处理这样的事情。
这是一个现实的期望 - 能够记录每一个用户的行为?我估计大约我们每小时可能有300到500次用户操作,来自各种应用程序。或者,我是否应该停止探索这种可能性,并在框外进行思考,而不是关注如何跟踪用户的一般行为?
这种类型的东西有时也被称为审计线索。你可能想要谷歌这个名字的谷歌。 – Casper
是卡斯帕尔 - 我们使用审计,但我认为那些“审计”宝石一般只记录模型的变化,对吗?将这些事件反向映射到特定的控制器名称/操作并不容易。 –