88. Actuator

Spring Boot 包括 Spring Boot Actuator。本节回答了经常因使用而引起的问题。

88.1 更改 Actuator 端点的 HTTP 端口或地址

在独立应用程序中,Actuator HTTP 端口默认与主 HTTP 端口相同。要使应用程序在其他端口上侦听,请设置外部属性:management.server.port。要侦听完全不同的网络地址(例如,当您有一个用于 Management 的内部网络而有一个用于用户应用程序的外部网络)时,还可以将management.server.address设置为服务器可以绑定到的有效 IP 地址。

有关更多详细信息,请参见“生产就绪功能”部分中的ManagementServerProperties源代码和“ 第 54.2 节“自定义 Management 服务器端口””。

88.2 自定义“ whitelabel”错误页面

如果遇到服务器错误,Spring Boot 将安装一个“ whitelabel”错误页面,您会在浏览器 Client 端中看到该错误页面(使用 JSON 和其他媒体类型的机器 Client 端应该看到带有正确错误代码的明智响应)。

Note

设置server.error.whitelabel.enabled=false可关闭默认错误页面。这样做将还原您正在使用的 servlet 容器的默认值。请注意,Spring Boot 仍然尝试解决错误视图,因此您可能应该添加自己的错误页面,而不是完全禁用它。

用自己的方法覆盖错误页面取决于您使用的模板技术。例如,如果您使用 Thymeleaf,则可以添加error.html模板。如果使用 FreeMarker,则可以添加error.ftl模板。通常,您需要使用名称error解析的View或处理/error路径的@Controller。除非您替换了某些默认配置,否则您应该在ApplicationContext中找到一个BeanNameViewResolver,因此一个名为error@Bean将是一种简单的实现方式。有关更多选项,请参见ErrorMvcAutoConfiguration

另请参见“ Error Handling”部分,以获取有关如何在 servlet 容器中注册处理程序的详细信息。

88.3 清理合理的值

envconfigprops端点返回的信息可能有些敏感,因此默认情况下会清理匹配特定模式的键(即,它们的值将被******替换)。

Spring Boot 对此类密钥使用合理的默认值:例如,对任何以单词“ password”,“ secret”,“ key”或“ token”结尾的密钥进行清理。也可以改用正则表达式,例如*credentials.*来清除将单词credentials作为关键字一部分的任何关键字。

可以分别使用management.endpoint.env.keys-to-sanitizemanagement.endpoint.configprops.keys-to-sanitize自定义要使用的模式。