日志监控相关表
引用文件
目录
项目概述
本项目是基于芋道云平台的日志监控系统,专注于API访问日志和API错误日志的完整生命周期管理。系统通过标准化的日志表结构设计,实现了对API接口调用的全面监控、分析和追踪。
日志监控模块主要包含两个核心表结构:
- API访问日志表 (infra_api_access_log):记录所有API接口的正常调用信息
- API错误日志表 (infra_api_error_log):记录API调用过程中的异常信息
项目结构
日志监控系统的整体架构采用分层设计,包含数据采集层、存储层、查询分析层和展示层:
图表来源
章节来源
核心组件
API访问日志表 (infra_api_access_log)
API访问日志表是日志监控系统的核心数据表,用于记录所有API接口的正常调用信息。该表设计遵循高性能和可扩展性的原则,支持大规模日志数据的存储和查询。
表结构设计
| 字段名 | 数据类型 | 约束条件 | 描述 | 示例值 |
|---|---|---|---|---|
| id | bigint | 主键, 自增 | 日志主键 | 35942 |
| trace_id | varchar(64) | 非空, 默认'' | 链路追踪编号 | "" |
| user_id | bigint | 非空, 默认0 | 用户编号 | 0 |
| user_type | tinyint | 非空, 默认0 | 用户类型 | 2 |
| application_name | varchar(50) | 非空 | 应用名 | "system-server" |
| request_method | varchar(16) | 非空, 默认"" | 请求方法名 | "POST" |
| request_url | varchar(255) | 非空, 默认"" | 请求地址 | "/admin-api/system/auth/login" |
| request_params | text | 可空 | 请求参数 | {"query":null,"body":"{\"tenantName\":\"芋道源码\",\"username\":\"admin\",\"rememberMe\":true}"} |
| response_body | text | 可空 | 响应结果 | NULL |
| user_ip | varchar(50) | 非空 | 用户 IP | "0:0:0:0:0:0:0:1" |
| user_agent | varchar(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_module | varchar(50) | 可空 | 操作模块 | "管理后台 - 认证" |
| operate_name | varchar(50) | 可空 | 操作名 | "使用账号密码登录" |
| operate_type | tinyint | 可空, 默认0 | 操作分类 | 2 |
| begin_time | datetime | 非空 | 开始请求时间 | "2025-03-20 17:51:25" |
| end_time | datetime | 非空 | 结束请求时间 | "2025-03-20 17:51:25" |
| duration | int | 非空 | 执行时长 | 317 |
| result_code | int | 非空, 默认0 | 结果码 | 400 |
| result_msg | varchar(512) | 可空, 默认"" | 结果提示 | "请求参数不正确:验证码不能为空" |
| creator | varchar(64) | 可空, 默认"" | 创建者 | NULL |
| create_time | datetime | 非空, 默认CURRENT_TIMESTAMP | 创建时间 | "2025-03-20 17:51:25" |
| updater | varchar(64) | 可空, 默认"" | 更新者 | NULL |
| update_time | datetime | 非空, 默认CURRENT_TIMESTAMP | 更新时间 | "2025-03-20 17:51:25" |
| deleted | bit(1) | 非空, 默认b'0' | 是否删除 | b'0' |
| tenant_id | bigint | 非空, 默认0 | 租户编号 | 1 |
关键索引设计
图表来源
性能优化特性
- 时间索引优化:为create_time字段建立索引,支持按时间范围快速查询
- 分区策略:支持按时间维度进行表分区,提高大数据量查询性能
- 压缩存储:对文本字段采用合适的压缩策略,减少存储空间占用
章节来源
API错误日志表 (infra_api_error_log)
API错误日志表专门用于记录API调用过程中的异常信息,提供完整的异常追踪和分析能力。
表结构设计
| 字段名 | 数据类型 | 约束条件 | 描述 | 示例值 |
|---|---|---|---|---|
| id | bigint | 主键, 自增 | 编号 | 1 |
| trace_id | varchar(64) | 非空 | 链路追踪编号 | "" |
| user_id | bigint | 非空, 默认0 | 用户编号 | 0 |
| user_type | tinyint | 非空, 默认0 | 用户类型 | 2 |
| application_name | varchar(50) | 非空 | 应用名 | "system-server" |
| request_method | varchar(16) | 非空 | 请求方法名 | "POST" |
| request_url | varchar(255) | 非空 | 请求地址 | "/admin-api/system/auth/login" |
| request_params | varchar(8000) | 非空 | 请求参数 | {} |
| user_ip | varchar(50) | 非空 | 用户 IP | "0:0:0:0:0:0:0:1" |
| user_agent | varchar(512) | 非空 | 浏览器 UA | "Mozilla/5.0..." |
| exception_time | timestamp | 非空 | 异常发生时间 | "2025-03-20 17:51:25" |
| exception_name | varchar(128) | 非空, 默认"" | 异常类名 | "ValidationException" |
| exception_message | text | 非空 | 异常消息 | "请求参数验证失败" |
| exception_root_cause_message | text | 非空 | 根因异常消息 | "验证码不能为空" |
| exception_stack_trace | clob | 非空 | 异常堆栈跟踪 | "com.example...stack trace" |
| exception_class_name | varchar(512) | 非空 | 异常类名 | "com.example.ValidationException" |
| exception_file_name | varchar(512) | 非空 | 异常文件名 | "UserController.java" |
| exception_method_name | varchar(512) | 非空 | 异常方法名 | "validateLogin" |
| exception_line_number | integer | 非空 | 异常行号 | 156 |
| exception_handler | varchar(255) | 可空 | 异常处理器 | "GlobalExceptionHandler" |
| exception_status | varchar(50) | 可空, 默认"" | 异常状态 | "500" |
| exception_category | varchar(100) | 可空, 默认"" | 异常分类 | "业务异常" |
| exception_severity | tinyint | 可空, 默认0 | 异常严重程度 | 3 |
| exception_count | integer | 可空, 默认0 | 异常出现次数 | 5 |
| exception_last_occurrence | timestamp | 可空 | 最后出现时间 | "2025-03-20 18:30:00" |
| exception_resolved | bit | 可空, 默认b'0' | 是否已解决 | b'0' |
| exception_resolver | varchar(100) | 可空 | 解决方案 | "添加验证码参数校验" |
| exception_resolve_time | timestamp | 可空 | 解决时间 | NULL |
| exception_resolve_user | varchar(100) | 可空 | 解决用户 | NULL |
| exception_notes | text | 可空 | 备注信息 | "需要优化验证码生成逻辑" |
异常分类管理
图表来源
章节来源
架构概览
日志监控系统的整体架构采用分布式设计理念,支持多数据库平台部署和高并发访问。
图表来源
详细组件分析
日志采集流程
日志采集采用异步非阻塞的方式,确保不影响正常的业务请求处理。
图表来源
查询优化策略
系统采用多种查询优化策略来提升日志查询性能:
- 索引优化:为常用查询字段建立合适索引
- 分页查询:默认分页大小限制,防止大数据量查询
- 条件过滤:支持多维度条件组合查询
- 缓存策略:热点数据缓存,减少数据库压力
归档策略
图表来源
章节来源
依赖关系分析
日志监控系统与其他模块存在紧密的依赖关系:
图表来源
数据一致性保证
系统通过以下机制保证数据一致性:
- 事务处理:关键日志操作采用事务保证原子性
- 幂等设计:避免重复记录相同日志
- 数据校验:入库前进行数据格式和内容校验
- 异常恢复:异常情况下自动重试和补偿机制
章节来源
性能考虑
存储性能优化
- 批量写入:采用批量插入减少数据库连接开销
- 异步处理:日志写入采用异步方式,不影响业务响应时间
- 数据压缩:对大字段进行压缩存储,节省磁盘空间
- 分区策略:按时间维度分区,提升查询效率
查询性能优化
- 索引设计:为高频查询字段建立合适索引
- 查询限制:设置查询结果集大小限制
- 缓存策略:热点查询结果缓存
- 分页机制:默认分页,支持大数据量场景
故障排除指南
常见问题及解决方案
| 问题类型 | 症状描述 | 可能原因 | 解决方案 |
|---|---|---|---|
| 日志丢失 | 查询不到预期日志 | 网关配置问题 | 检查网关日志拦截器配置 |
| 查询缓慢 | 日志查询响应时间过长 | 缺少索引或数据量过大 | 添加索引,实施数据归档 |
| 存储不足 | 数据库空间不足 | 日志数据积累过多 | 实施日志归档和清理策略 |
| 异常信息缺失 | 错误日志缺少详细信息 | 异常处理配置问题 | 检查全局异常处理器配置 |
| 性能下降 | 系统整体性能受影响 | 日志写入过于频繁 | 调整日志采样率和存储策略 |
监控指标
系统提供以下关键监控指标:
- 日志吞吐量:每秒日志写入数量
- 查询延迟:平均查询响应时间
- 存储使用率:日志数据存储空间使用情况
- 异常率:API调用异常比例
- 系统资源:CPU、内存、磁盘IO使用情况
章节来源