跳到主要内容

日志监控相关表

目录

  1. 项目概述
  2. 项目结构
  3. 核心组件
  4. 架构概览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能考虑
  8. 故障排除指南
  9. 结论

项目概述

本项目是基于芋道云平台的日志监控系统,专注于API访问日志和API错误日志的完整生命周期管理。系统通过标准化的日志表结构设计,实现了对API接口调用的全面监控、分析和追踪。

日志监控模块主要包含两个核心表结构:

  • API访问日志表 (infra_api_access_log):记录所有API接口的正常调用信息
  • API错误日志表 (infra_api_error_log):记录API调用过程中的异常信息

项目结构

日志监控系统的整体架构采用分层设计,包含数据采集层、存储层、查询分析层和展示层:

Mermaid Diagram Code:

graph TB
subgraph "数据采集层"
A[API网关] --> B[日志拦截器]
B --> C[链路追踪]
end
subgraph "存储层"
D[API访问日志表] --> E[MySQL存储]
F[API错误日志表] --> G[关系型数据库]
end
subgraph "查询分析层"
H[日志查询接口] --> I[分页查询]
I --> J[条件过滤]
J --> K[排序统计]
end
subgraph "展示层"
L[管理后台] --> M[日志列表]
M --> N[详情查看]
N --> O[导出功能]
end
C --> D
C --> F
E --> H
G --> H
H --> L

图表来源

章节来源

核心组件

API访问日志表 (infra_api_access_log)

API访问日志表是日志监控系统的核心数据表,用于记录所有API接口的正常调用信息。该表设计遵循高性能和可扩展性的原则,支持大规模日志数据的存储和查询。

表结构设计

字段名数据类型约束条件描述示例值
idbigint主键, 自增日志主键35942
trace_idvarchar(64)非空, 默认''链路追踪编号""
user_idbigint非空, 默认0用户编号0
user_typetinyint非空, 默认0用户类型2
application_namevarchar(50)非空应用名"system-server"
request_methodvarchar(16)非空, 默认""请求方法名"POST"
request_urlvarchar(255)非空, 默认""请求地址"/admin-api/system/auth/login"
request_paramstext可空请求参数{"query":null,"body":"{\"tenantName\":\"芋道源码\",\"username\":\"admin\",\"rememberMe\":true}"}
response_bodytext可空响应结果NULL
user_ipvarchar(50)非空用户 IP"0:0:0:0:0:0:0:1"
user_agentvarchar(512)非空浏览器 UA"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36 Edg/133.0.0.0"
operate_modulevarchar(50)可空操作模块"管理后台 - 认证"
operate_namevarchar(50)可空操作名"使用账号密码登录"
operate_typetinyint可空, 默认0操作分类2
begin_timedatetime非空开始请求时间"2025-03-20 17:51:25"
end_timedatetime非空结束请求时间"2025-03-20 17:51:25"
durationint非空执行时长317
result_codeint非空, 默认0结果码400
result_msgvarchar(512)可空, 默认""结果提示"请求参数不正确:验证码不能为空"
creatorvarchar(64)可空, 默认""创建者NULL
create_timedatetime非空, 默认CURRENT_TIMESTAMP创建时间"2025-03-20 17:51:25"
updatervarchar(64)可空, 默认""更新者NULL
update_timedatetime非空, 默认CURRENT_TIMESTAMP更新时间"2025-03-20 17:51:25"
deletedbit(1)非空, 默认b'0'是否删除b'0'
tenant_idbigint非空, 默认0租户编号1

关键索引设计

Mermaid Diagram Code:

erDiagram
INFRA_API_ACCESS_LOG {
bigint id PK
varchar trace_id
bigint user_id
tinyint user_type
varchar application_name
varchar request_method
varchar request_url
datetime begin_time
datetime end_time
int duration
datetime create_time
}
INDEXES {
"idx_create_time" on create_time
"PRIMARY KEY" on id
}

图表来源

性能优化特性

  1. 时间索引优化:为create_time字段建立索引,支持按时间范围快速查询
  2. 分区策略:支持按时间维度进行表分区,提高大数据量查询性能
  3. 压缩存储:对文本字段采用合适的压缩策略,减少存储空间占用

章节来源

API错误日志表 (infra_api_error_log)

API错误日志表专门用于记录API调用过程中的异常信息,提供完整的异常追踪和分析能力。

表结构设计

字段名数据类型约束条件描述示例值
idbigint主键, 自增编号1
trace_idvarchar(64)非空链路追踪编号""
user_idbigint非空, 默认0用户编号0
user_typetinyint非空, 默认0用户类型2
application_namevarchar(50)非空应用名"system-server"
request_methodvarchar(16)非空请求方法名"POST"
request_urlvarchar(255)非空请求地址"/admin-api/system/auth/login"
request_paramsvarchar(8000)非空请求参数{}
user_ipvarchar(50)非空用户 IP"0:0:0:0:0:0:0:1"
user_agentvarchar(512)非空浏览器 UA"Mozilla/5.0..."
exception_timetimestamp非空异常发生时间"2025-03-20 17:51:25"
exception_namevarchar(128)非空, 默认""异常类名"ValidationException"
exception_messagetext非空异常消息"请求参数验证失败"
exception_root_cause_messagetext非空根因异常消息"验证码不能为空"
exception_stack_traceclob非空异常堆栈跟踪"com.example...stack trace"
exception_class_namevarchar(512)非空异常类名"com.example.ValidationException"
exception_file_namevarchar(512)非空异常文件名"UserController.java"
exception_method_namevarchar(512)非空异常方法名"validateLogin"
exception_line_numberinteger非空异常行号156
exception_handlervarchar(255)可空异常处理器"GlobalExceptionHandler"
exception_statusvarchar(50)可空, 默认""异常状态"500"
exception_categoryvarchar(100)可空, 默认""异常分类"业务异常"
exception_severitytinyint可空, 默认0异常严重程度3
exception_countinteger可空, 默认0异常出现次数5
exception_last_occurrencetimestamp可空最后出现时间"2025-03-20 18:30:00"
exception_resolvedbit可空, 默认b'0'是否已解决b'0'
exception_resolvervarchar(100)可空解决方案"添加验证码参数校验"
exception_resolve_timetimestamp可空解决时间NULL
exception_resolve_uservarchar(100)可空解决用户NULL
exception_notestext可空备注信息"需要优化验证码生成逻辑"

异常分类管理

Mermaid Diagram Code:

flowchart TD
A[异常发生] --> B{异常类型判断}
B --> |业务异常| C[业务异常分类]
B --> |系统异常| D[系统异常分类]
B --> |网络异常| E[网络异常分类]
B --> |超时异常| F[超时异常分类]
C --> G[设置异常级别]
D --> G
E --> G
F --> G
G --> H[记录异常信息]
H --> I[更新异常统计]
I --> J[触发告警机制]

图表来源

章节来源

架构概览

日志监控系统的整体架构采用分布式设计理念,支持多数据库平台部署和高并发访问。

Mermaid Diagram Code:

graph TB
subgraph "前端层"
A[管理后台界面] --> B[日志查询页面]
B --> C[错误日志页面]
end
subgraph "服务层"
D[日志服务API] --> E[访问日志服务]
D --> F[错误日志服务]
E --> G[数据访问层]
F --> G
end
subgraph "数据层"
H[MySQL数据库] --> I[API访问日志表]
H --> J[API错误日志表]
K[Redis缓存] --> L[热点数据缓存]
end
subgraph "监控层"
M[链路追踪] --> N[分布式ID生成]
N --> O[性能监控]
end
A --> D
D --> H
H --> M

图表来源

详细组件分析

日志采集流程

日志采集采用异步非阻塞的方式,确保不影响正常的业务请求处理。

Mermaid Diagram Code:

sequenceDiagram
participant Client as 客户端
participant Gateway as API网关
participant Interceptor as 日志拦截器
participant Storage as 日志存储
participant Cache as 缓存层
Client->>Gateway : 发起API请求
Gateway->>Interceptor : 进入拦截器
Interceptor->>Interceptor : 记录请求信息
Gateway->>Gateway : 处理业务逻辑
Gateway->>Interceptor : 返回响应
Interceptor->>Interceptor : 记录响应信息
Interceptor->>Storage : 异步写入日志
Storage->>Cache : 更新缓存统计
Cache-->>Storage : 缓存更新完成
Storage-->>Interceptor : 写入完成
Interceptor-->>Gateway : 继续处理
Gateway-->>Client : 返回最终响应

图表来源

查询优化策略

系统采用多种查询优化策略来提升日志查询性能:

  1. 索引优化:为常用查询字段建立合适索引
  2. 分页查询:默认分页大小限制,防止大数据量查询
  3. 条件过滤:支持多维度条件组合查询
  4. 缓存策略:热点数据缓存,减少数据库压力

归档策略

Mermaid Diagram Code:

flowchart TD
A[日志数据] --> B{数据时效性检查}
B --> |新数据| C[保留到主表]
B --> |历史数据| D{是否超过保留期}
D --> |否| C
D --> |是| E[归档到历史表]
E --> F[压缩存储]
F --> G[清理主表数据]
C --> H[定期维护]
E --> H
H --> A

图表来源

章节来源

依赖关系分析

日志监控系统与其他模块存在紧密的依赖关系:

Mermaid Diagram Code:

graph TB
subgraph "核心依赖"
A[基础设施模块] --> B[日志监控模块]
C[安全认证模块] --> B
D[链路追踪模块] --> B
end
subgraph "外部依赖"
E[MySQL数据库] --> B
F[Redis缓存] --> B
G[分布式ID生成] --> B
end
subgraph "业务依赖"
H[用户管理] --> B
I[权限控制] --> B
J[租户管理] --> B
end
A --> E
C --> F
D --> G
H --> B
I --> B
J --> B

图表来源

数据一致性保证

系统通过以下机制保证数据一致性:

  1. 事务处理:关键日志操作采用事务保证原子性
  2. 幂等设计:避免重复记录相同日志
  3. 数据校验:入库前进行数据格式和内容校验
  4. 异常恢复:异常情况下自动重试和补偿机制

章节来源

性能考虑

存储性能优化

  1. 批量写入:采用批量插入减少数据库连接开销
  2. 异步处理:日志写入采用异步方式,不影响业务响应时间
  3. 数据压缩:对大字段进行压缩存储,节省磁盘空间
  4. 分区策略:按时间维度分区,提升查询效率

查询性能优化

  1. 索引设计:为高频查询字段建立合适索引
  2. 查询限制:设置查询结果集大小限制
  3. 缓存策略:热点查询结果缓存
  4. 分页机制:默认分页,支持大数据量场景

故障排除指南

常见问题及解决方案

问题类型症状描述可能原因解决方案
日志丢失查询不到预期日志网关配置问题检查网关日志拦截器配置
查询缓慢日志查询响应时间过长缺少索引或数据量过大添加索引,实施数据归档
存储不足数据库空间不足日志数据积累过多实施日志归档和清理策略
异常信息缺失错误日志缺少详细信息异常处理配置问题检查全局异常处理器配置
性能下降系统整体性能受影响日志写入过于频繁调整日志采样率和存储策略

监控指标

系统提供以下关键监控指标:

  1. 日志吞吐量:每秒日志写入数量
  2. 查询延迟:平均查询响应时间
  3. 存储使用率:日志数据存储空间使用情况
  4. 异常率:API调用异常比例
  5. 系统资源:CPU、内存、磁盘IO使用情况

章节来源

结论

日志监控模块通过精心设计的表结构和完善的查询分析功能,为系统提供了全面的API调用监控能力。系统采用分布式架构设计,支持高并发访问和大数据量存储,同时具备良好的扩展性和维护性。

通过标准化的日志格式、丰富的查询条件和灵活的归档策略,系统能够满足不同规模企业对API日志监控的需求,为系统稳定运行和性能优化提供重要支撑。

用户文档
AI 助手
Agent 列表
请选择一个 Agent 开始对话
AI 问答