跳转到内容

ACL 系统日志

背景描述

为了记录用户基本的操作信息,例如某用户在何时登入或登出等操作,用作用户操作方面的审计工作。ACL 接入了 Trantor 提供的日志记录功能,来异步记录这些信息,以下是单条记录需要记录的信息:

  1. 日志ID:登录日志流水号;
  2. 用户标识:userid;
  3. 用户名:username;
  4. 需要监控的操作类型: ○ 注册:自有的注册接口 ○ 登录成功:自有的登录接口 ○ 登录成功(qq/微信…):三方登录 ○ 关联三方账号(qq/微信…):关联三方账号通过 ○ 手机登录验证失败:通过验证码登录,验证失败 ○ 邮箱登录验证失败:通过验证码登录,验证失败 ○ 密码验证失败:密码验证登录失败 ○ 账号冻结:登录验证失败冻结 ○ 账号解冻:自然解冻 ○ 账号停用:user列表手动停用 ○ 账号启用:user列表手动启用 ○ 绑定手机:账号绑定手机 ○ 绑定邮箱:账号绑定邮箱 ○ 换绑手机:账号换绑手机成功 ○ 换绑邮箱:账号换绑邮箱成功 ○ 账号注销:账号注销成功 ○ 修改密码:修改密码成功

实现原理

ACL 这边的日志信息存储是采用的 MS 提供的日志信息存储去做的,通过引入 MS SDK 发送具体的用户操作信息,MS 接收这部分数据后直接写入数据库的,这部分用户日志的查看页面也是 MS 提供的页面展示的,具体的页面配置参考 操作日志使用指南 所述即可。以下是用户日志整体的收集时序图:

版本信息

由于这部分的日志信息是基于 MS 的 Log SDK, ACL 发送用户的操作类型信息到 MS,由 MS 的操作日志的机制将这部分信息写入库的,因此,存在和 Trantor 版本绑定的情况,在 Trantor 1.0.x 系列,这部分的日志机制最低支持版本如下,以及对应的 ACL parana-parent 的版本信息:

<!--Trantor 1.0.x 版本信息-->
<parent>
<groupId>io.terminus.trantor</groupId>
<artifactId>trantor-parent</artifactId>
<version>1.0.17.RELEASE</version>
</parent>
<!--ACL 7.0.x 版本信息-->
<parent>
<groupId>io.terminus.parana</groupId>
<artifactId>parana-parent</artifactId>
<version>7.0.2-SNAPSHOT</version>
</parent>

配置步骤

检查版本

根据版本信息提供的 Trantor 和 ACL 的版本检查是否支持,若不支持需要进行对应的升级操作。

Trantor 需要更换 MS 的镜像,需要与提供的 Trantor 版本对应。 ACL 需要重新上报元信息,更换对应的 parana-parent 依赖版本即可。

页面配置

配置用户日志的展示页面来查看记录的用户日志信息,页面配置参考 操作日志使用指南 所述。

image-20220329164217359

日志关闭

如若某些场景不需要 ACL 去记录这部分的用户操作日志,可在对应的 ACL 服务配置以下变量重启即可:

TRANTOR_EVENT_ENABLED: false