Symfony 2.7应用程序审计跟踪 - 最佳实践

Jim*_*izz 5 audit doctrine audit-trail symfony doctrine-orm

我有一个使用doctrine的大型多租户Symfony2应用程序和MySQL中大约40到50个数据库表.

有没有人有过设置审计日志记录过程的经验,至少要跟踪在大型应用程序中创建,编辑或删除数据的所有Doctrine操作?

理想情况下它应该"恰好发生",以便其他开发人员不必担心使他们的新实体或代码"可记录".

我没有具体的要求(HIPAA等),但是尽可能接近任何ISO27000最佳实​​践是很好的.

我的初步计划是查看使用一些Doctrine生命周期回调来获取信息并将其推送到一个没有DELETE或UPDATE权限的独立MySQL数据库中.我担心这种方法可能会对性能产生很大影响.

有没有人在此之前做过这个或类似的任何有任何提示或警告措辞的计划方法?

如果重要的是整个堆栈在AWS上运行,我可以在EU-WEST-1区域使用他们的任何服务.我已经在使用RDS,Elasticache和SQS之类的东西了.

谢谢!

小智 2

OroPlatform是在 Symfony 2.8 中构建的,并且有一个名为OroDataAuditBundle的包,它仅在两个表中深入审计所有 Doctrine 实体操作(创建、更新、删除):oro_auditoro_audit_field

在此输入图像描述

在用户界面中看起来像这样:

在此输入图像描述

您可能无法在您的项目中使用这个捆绑包 - 因为它是为 OroPlatform 构建的 - 但是,您至少可以从他们的架构中获得一些灵感。

如果您想检查此审计系统是否正常工作,他们在https://demo.orocrm.com中有一个在线演示。只需以管理员身份登录并尝试创建条目,然后您就可以在https://demo.orocrm.com/audit中检查所有审核条目。