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 清理合理的值
env
和configprops
端点返回的信息可能有些敏感,因此默认情况下会清理匹配特定模式的键(即,它们的值将被******
替换)。
Spring Boot 对此类密钥使用合理的默认值:例如,对任何以单词“ password”,“ secret”,“ key”或“ token”结尾的密钥进行清理。也可以改用正则表达式,例如*credentials.*
来清除将单词credentials
作为关键字一部分的任何关键字。
可以分别使用management.endpoint.env.keys-to-sanitize
和management.endpoint.configprops.keys-to-sanitize
自定义要使用的模式。