ToolJet 如何按时间范围、用户和 IP 查询并筛选 Audit Logs 审计日志?
【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 🚀项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet
在排查“谁在什么时间、从哪个地址对账户做了什么操作”这类问题时,需要到 ToolJet 的 Audit Logs 页面查询事件记录。Audit Logs 会自动记录操作者(who)、操作内容(what)、发生时间(when)、发生位置(where),并附带 IP 地址等信息。本文说明如何用日期范围圈定事件窗口、用用户下拉框锁定操作者、再逐条核对日志中的ip_address字段,从而把一条可疑活动定位到具体的人和来源地址。
适用前提:Audit Logs 在官方文档中标注为Paid feature(付费功能),需要在已启用该功能的 ToolJet 实例中使用。
按时间范围查询日志
进入 Audit Logs 页面后,顶部提供 range picker(日期范围选择器):
- 选择 “from” 和 “to” 日期与时间,列表只显示该区间内发生的事件;
- 初始视图默认加载最近24 小时的日志;
- “from” 与 “to” 之间的最大跨度为30 天,超过这个范围无法选定。
列表底部有分页控件,每页最多显示7 条日志。如果圈定的时间窗内事件很多,需要翻页浏览全部条目。
按用户、应用和资源筛选
在日期范围之外,Audit Logs 页面支持以下过滤器(文档中记载的完整列表):
Select Users(按用户筛选):从下拉列表中选择某个用户,即可只显示该用户的全部活动。这是把日志范围收敛到“某个人的操作”的直接方式。
Select Apps(按应用筛选):下拉列表显示账户下所有应用,选中某个应用后只显示与该应用相关的日志。
Select Resources(按资源筛选):
| 资源 | 覆盖的事件 |
|---|---|
| User | USER_LOGIN、USER_SIGNUP、USER_INVITE、USER_INVITE_REDEEM |
| App | APP_CREATE、APP_UPDATE、APP_VIEW、APP_DELETE、APP_IMPORT、APP_EXPORT、APP_CLONE |
| Data Query | DATA_QUERY_RUN |
| Group Permission | GROUP_CREATE、GROUP_UPDATE、GROUP_DELETE等组权限事件 |
| App Group Permission | 组内应用的View/Edit权限变更事件 |
Select Actions(按动作筛选):除上表资源对应的事件外,还包括GROUP_PERMISSION_CREATE、GROUP_PERMISSION_UPDATE、GROUP_PERMISSION_DELETE、APP_GROUP_PERMISSION_UPDATE等权限相关事件。例如只想看登录行为,就用USER_LOGIN动作过滤;只想看应用删除,就用APP_DELETE。
按 IP 核对日志条目
文档中记载的过滤器维度是日期范围、用户、应用、资源和动作;IP 不是独立的过滤下拉框,而是每条日志事件自带的属性。因此按 IP 查询的路径是:先用时间范围 + 用户(必要时加应用/动作)把列表缩小到目标条目,再在每条日志中核对ip_address字段,它表示事件记录时来源的 IP 地址。
每条日志包含以下字段(摘自文档的属性表):
| 字段 | 含义 |
|---|---|
action_type | 事件的动作类型(见 Select Actions 一节) |
created_at | 事件记录的时间 |
id | 每条事件唯一的 ID |
ip_address | 事件来源的 IP 地址 |
metadata | 含tooljet_version(事件发生时的 ToolJet 版本)和user_agent(设备与浏览器信息) |
organization_id | 事件所属组织的唯一 ID |
resource_id/resource_name/resource_type | 事件涉及资源的 ID、名称和类型 |
user_id | 触发事件的用户账户 ID |
一个典型排查路径:先用 range picker 圈出可疑时段(跨度不超过 30 天),在 Select Users 中选定目标用户,翻页浏览条目并核对ip_address与created_at;如果发现某条USER_LOGIN或APP_EXPORT事件的ip_address与预期不符,metadata.user_agent还能提供当时的浏览器/设备线索。
可选分支:配置日志文件后离线查询 IP
如果你需要脱离页面、直接在文件系统里检索某个 IP,可以启用 Audit Logs 的日志文件功能(适用于自托管部署,详见 Setup Log File Generation (Rsyslog) 与 环境变量说明):
设置环境变量
LOG_FILE_PATH指定日志文件路径(该路径相对于机器 home 目录),例如:LOG_FILE_PATH='rsyslog'重启服务器,服务器才会开始生成审计日志文件。
日志文件按
homepath/rsyslog/{process_id}-{date}/audit.log的结构组织:{process_id}是唯一进程标识,{date}是日期。文件每日滚动生成新文件,每次产生新的审计日志都会动态更新。
日志文件中每条记录同样包含ipAddress字段(文档示例):
{ level: 'info', message: 'PERFORM APP_CREATE OF awdasdawdwd APP', timestamp: '2023-11-02 17:12:40', auditLog: { userId: '0ad48e21-e7a2-4597-9568-c4535aedf687', organizationId: 'cf8e132f-a68a-4c81-a0d4-3617b79e7b17', resourceId: 'eac02f79-b8e2-495a-bffe-82633416c829', resourceType: 'APP', actionType: 'APP_CREATE', resourceName: 'awdasdawdwd', ipAddress: '::1', metadata: { userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36', tooljetVersion: '2.22.2-ee2.8.3' } }, label: 'APP' }以上为文档中的示例数据,用于说明日志结构,不要把这些具体 ID 当作固定值。由于文件按日期切分,定位某个时间段的 IP 时只需打开对应日期目录下的audit.log,在其中查找目标ipAddress值即可。
限制与边界
日期范围最大跨度 30 天,页面每页最多 7 条日志;需要更早的记录时,只能分段选择时间窗或使用日志文件。
工具默认会对日志中的敏感头做掩码(Log Redaction),掩码列表包含
authorization、cookie、set-cookie、x-api-key、proxy-authorization、www-authenticate、authentication-info以及x-forwarded-for。也就是说经过代理时的转发头不会被原样保留在日志里;如还有自定义字段需要掩码,可设置LOGGER_REDACT(逗号分隔),例如:LOGGER_REDACT=res.headers["x-rate-limit-remaining"],res.headers["x-request-id"]日志文件功能只有在设置了
LOG_FILE_PATH并重启服务器后才会生效;未配置时 Audit Logs 只在页面内按上述过滤器查询。
完整的事件定义与字段说明见 Audit Logs 文档。
【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 🚀项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考