Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring启动执行器无法显示磁盘空间信息_Spring_Spring Boot_Spring Boot Actuator - Fatal编程技术网

Spring启动执行器无法显示磁盘空间信息

Spring启动执行器无法显示磁盘空间信息,spring,spring-boot,spring-boot-actuator,Spring,Spring Boot,Spring Boot Actuator,我有两个Spring Boot应用程序。我添加了两个弹簧启动执行器。当我运行其中一个时,我可以看到diskSpace: { "status": "UP", "diskSpace": { "status": "UP", "total": 399055067136, "free": 346446485504, "threshold": 10485760 } } 但在其他服务中,我只能看到: { "status": "UP" } 即使我将该属性添加到

我有两个Spring Boot应用程序。我添加了两个弹簧启动执行器。当我运行其中一个时,我可以看到
diskSpace

{
  "status": "UP",
  "diskSpace": {
    "status": "UP",
    "total": 399055067136,
    "free": 346446485504,
    "threshold": 10485760
  }
}
但在其他服务中,我只能看到:

{
  "status": "UP"
}
即使我将该属性添加到第二个服务:

management:
  health:
    diskspace:
      enabled: true

我仍然看不到
diskSpace
信息。当我调试系统时,我看到这样的属性被收集,但没有返回到UI。可能是什么问题?

Spring boot actuator的HealthIndicator检查可用磁盘空间,并在低于可配置阈值时报告状态“DOWN”

因此,在您的第二个应用程序中,可用空间大于阈值,因此您看不到任何报告

您可能可以调试代码,并在代码中看到空闲磁盘空间值和阈值


让我知道这是否有意义…

因为只有管理员有权查看更多信息

{
  "status": "UP"
}
要查看所有指标,请向具有spring安全角色ADMIN的任何用户进行身份验证

(不太可取的选择) 禁用执行器端点的安全性,如下所示

在应用程序属性
yaml
文件中

management:
   security:
      enabled: false

如果您正在使用spring security(默认情况下,启动器端点处于启用状态),则可以在yml文件中禁用它-

management:
   security:
      enabled: false 

只需在application.properties中添加一行:

management.endpoint.health.show-details = always

这使运行状况向授权人员以外的所有用户显示详细信息。

management.security.enabled
现在已弃用

您可以通过在
应用程序中添加一行来获取完整的运行状况详细信息。属性

management.endpoint.health.show-details=always

您是否有可能共享第二个执行器的代码,其中您已实现DiskSpace HealthIndicator,但未实现自定义运行状况指示器。我刚刚添加了执行器依赖项。您为低磁盘空间定义的阈值是多少。我在同一台机器上运行该服务。其中一个显示详细信息,另一个不显示。所以,问题不应该和阈值有关。唯一的区别是在第二个应用程序中没有启用web安全。/health和/info端点不属于敏感端点,所以您的web安全设置不应影响它们。只是为了确保您可以将endpoints.beans.sensitive=false添加到属性文件并重新运行应用程序。我已经调试了代码,您是对的。它说:
if(exposeHealthDetails(principal)){return this.cached;}return Health.status(this.cached.getStatus()).build()我已在应用程序中禁用登录机制。但是我也设置了
端点:健康:敏感:false
,但是Spring仍然需要一个经过身份验证的用户。据我所知,即使启用了身份验证,敏感也是错误的,访问此类信息的应该是管理员用户。在这种情况下,这是一个需要我理解的问题。为什么在您的第一个spring boot应用程序中可以看到所有信息。你是管理员吗?这对我很有帮助。