# 50.9 健康信息

你可以使用健康信息来检查应用的运行状态。它经常被监控软件用来提醒人们生产环境是否存在问题。`health`端点暴露的信息取决于`management.endpoint.health.show-details`属性。该属性可以使用下列值配置：

| 名称                | 描述                                                      |
| ----------------- | ------------------------------------------------------- |
| `never`           | 不展示细节                                                   |
| `when-authorized` | 只对授权用户展示细节。可以使用`management.endpoint.health.roles`配置授权用户 |
| `always`          | 对所有用户展示细节                                               |

默认值是`never`。当用户有一到多个端点角色时，就认为用户已经授权。如果端点没有配置角色（默认），就认为所有验证用户已经授权。可以使用`management.endpoint.health.roles`属性配置角色。

**注** 如果你已经加密了你的应用，并且想要使用`always`，你的加密配置必须允许所有用户访问健康端点。

健康信息是从你的`ApplicationContext`中定义的所有[HealthIndicator](https://github.com/spring-projects/spring-boot/tree/v2.0.0.RELEASE/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/HealthIndicator.java) beans收集过来的。Spring Boot包含很多自动配置的`HealthIndicators`，你也可以写自己的。默认的，最终的系统状态来自于`HealthAggregator`。它会基于一个状态的有序列表，排序来自每一个`HealthIndicator`的状态。有序列表里的头一个状态会用作全体的健康状态。如果`HealthIndicator`返回的状态都无法被`HealthAggregator`识别, 则会使用`UNKNOWN`状态。
