Spring Boot Admin 修改日志级别时 403 Forbidden

昨天发现 Spring Boot Admin 中调整日志级别时报了 403 的错误。实际报错的请求地址为 /instances/e0ab022eca79/actuator/loggers/ROOT ,其中 e0ab022eca79 为实例的 ID , ROOT 是要修改的 Logger 的包。

Spring Boot Admin & management.endpoints.web.base-path

基于前一篇 Spring Boot Admin & Nacos 的博客,如果有服务通过 management.endpoints.web.base-path 属性修改了 Actuator 暴露的端点路径,SBA Server 检查服务健康状态时会失败。原因是 SBA Server 请求的路径和实际暴露的路径不一致。

Spring Boot Admin & Nacos

之前只采用过 Spring Boot Admin Server(简称 SBA Server ) ➕ Spring Boot Admin Client 的方式来访问各服务的 Actuator 暴露的端点。这种方式需要在每个服务中添加 spring-boot-admin-client 依赖并做相应的配置,这就导致在 SBA Server 和具体服务之间产生了耦合。

Spring Boot Admin 应用日志配置报错:DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144

服务多开了几个容器之后,打开应用的日志配置页面报 500 错误:

获取日志配置失败。
Request failed with status code 500

但是单个实例的日志配置仍然是可以正常显示的。

查看网络请求,发现返回是如下内容:

{
    "timestamp": "2021-03-11T01:32:11.874+0000",
    "status": 500,
    "error": "Internal Server Error",
    "message": "org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.core.io.buffer.DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144",
    "path": "/applications/XY-System-Consumer/actuator/loggers"
}
Spring-Boot-Admin-Server Request failed with status code 406

Spring-Boot-Admin-Server2.2.0)调整日志配置时,报了如下错误:

获取日志配置失败。
Request failed with status code 406

看了下网络请求,获取单个实例日志配置的请求是正确的。对比了下,应该是获取应用的日志配置时未设置 Content-Type 导致的。

Spring Boot Admin 2.2.1 发布,修复集群日志问题 中看到 2.2.1 版本修复了这个问题。