You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Actuator API返回正常但审计日志记录404错误排查

问题分析:Actuator健康端点返回正常但审计日志记录404

问题场景

我在Spring Boot应用的application.yaml中配置了Actuator如下:

#Actuator
management:
  endpoints:
    web:
      base-path: /manage
      exposure:
        include: "env,health,heapdump,info,metrics,prometheus,scheduledtasks,threaddump"
  metrics:
    se-global-registry: false
    export:
      prometheus:
        enabled: true # 是否开启Prometheus指标导出
        step: 1m # 上报频率

部署后通过Postman调用http://localhost:{PORT}/manage/health,接口正常返回:

{
"status": "UP"
}

但查看audit.log时,发现该接口的调用记录中存在404错误日志。

可能原因及解决方案

1. 审计组件路径匹配不匹配

审计拦截器/过滤器的路径规则未包含Actuator的base-path前缀(/manage)。比如审计逻辑监听的是/health而非/manage/health,导致请求进入时先触发“路径未匹配”的404日志,后续才被Actuator的正确处理逻辑路由,返回200。

解决:检查审计组件的路径配置,确保匹配规则覆盖/manage/**(比如自定义拦截器设置addPathPatterns("/manage/**"),或Spring Security中对Actuator路径的正确配置)。

2. 请求处理顺序问题

Actuator的端点通过特殊的EndpointHandlerMapping处理,若审计拦截器的执行顺序早于Actuator的请求映射逻辑,会在请求未匹配到Actuator端点前就记录404状态,后续请求才被正确处理返回200,但日志未更新最终状态。

解决:调整拦截器/过滤器的执行顺序,让Actuator的请求处理逻辑优先执行;或修改审计日志的记录时机,延迟到请求处理完成阶段(比如过滤器的afterCompletion方法),确保获取最终响应状态码。

3. 路径冲突

应用中存在其他控制器、过滤器映射了/manage/health或相似路径,导致请求先被这些组件处理,因找不到对应逻辑产生404日志,之后请求才流转到Actuator的处理逻辑返回正常结果。

解决:排查应用内的路径映射,移除或修改冲突的路径配置,确保/manage/health仅由Actuator端点处理。

4. 审计日志的中间状态误记录

部分审计组件会在请求处理的早期阶段(如刚进入过滤器链)记录临时状态,此时Actuator的特殊处理逻辑尚未触发,因此标记为404,而后续实际处理完成后未更新日志状态,导致最终日志保留了中间错误状态。

解决:修改审计日志的逻辑,仅在请求完全处理完成后记录最终的响应状态,避免记录中间过程的临时状态。

内容的提问来源于stack exchange,提问作者Shubham Shekhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 05:42:47