支撑百万级请求全量审计的关键是采集不丢、存储可查、分析实时、展示聚焦:通过轻量嵌入与分层过滤实现全量采集;热冷分离与字段索引优化结构化存储;流式聚合与风险画像驱动实时分析;按角色组织日志大盘矩阵。

一、全量采集:轻量嵌入 + 分层过滤
百万QPS下,传统AOP或同步日志写入必然成为瓶颈。应绕过业务线程阻塞,采用请求生命周期钩子 + 异步事件投递机制:
- 基于Spring MVC HandlerInterceptor或WebFilter,在
afterCompletion阶段提取关键字段(用户ID、接口路径、HTTP状态码、耗时、traceId),不记录原始请求体/响应体 - 敏感字段(如手机号、身份证号)在采集端即脱敏,避免后续处理泄露风险
- 设置两级过滤:一级在客户端做采样降噪(如仅记录500错误、401/403、高频访问TOP100接口);二级在日志网关按规则动态放行(如某IP突增300%请求则全量捕获)
二、结构化存储:热冷分离 + 字段索引优化
全量≠全存于数据库。需用分层策略平衡性能与留存要求:
- 热数据(最近7天)存入支持高并发写入的时序数据库(如TDengine或ClickHouse),对
user_id、operation、status、timestamp建立复合索引 - 冷数据(7天以上)自动转存至对象存储(如S3/OSS),按日期+命名空间分区,保留原始JSON结构,供离线审计或取证使用
- 所有日志强制结构化输出,统一字段规范(例如固定含
event_type、resource、client_ip、ua_hash),禁用自由文本格式
三、实时分析:流式聚合 + 风险画像驱动
大盘不是静态图表堆砌,而是面向场景的决策入口。需将原始日志转化为可操作指标:
- 用Flink或Spark Streaming做窗口统计:每分钟计算各接口错误率、各用户操作频次、异常UA分布、横向越权尝试次数
- 构建轻量级用户风险画像:基于登录地突变、设备指纹漂移、权限变更后立即访问敏感资源等规则,实时打标“高风险会话”
- 关键指标直接对接告警通道(如企业微信/钉钉机器人),而非仅停留在大盘上——例如“过去5分钟内同一user_id触发DELETE操作超20次”立即推送
四、日志大盘矩阵:按角色组织,非一张大屏
所谓“矩阵”,是指面向不同角色提供差异化的视图组合,而非把所有字段塞进一个仪表盘:
- 安全运营视图:聚焦异常检测,含“API暴力探测TOP10”、“未授权访问地理热力图”、“特权操作时间轴”
- 合规审计视图:满足等保/GDPR要求,固定展示“数据导出操作清单”、“敏感字段访问审计表”、“操作留痕完整率(是否含user_id+ip+time+action)”
- 研发排障视图:绑定traceId,支持一键下钻到调用链详情,叠加服务间延迟瀑布图与错误分类饼图
- 所有视图底层共享同一套查询引擎(如Loki+Prometheus或SLS查询语法),确保数据口径一致


















