如果您正在开发 Web 应用程序,则 Spring Boot Actuator 会自动配置所有已启用的端点以通过 HTTP 公开。默认约定是使用前缀为 /actuator
的端点的 id
作为 URL 路径。例如,health
被暴露为 /actuator/health
。
☀️ Spring MVC,Spring WebFlux 和 Jersey 本身支持 Actuator。
有时,自定义管理端点的前缀很有用。例如,您的应用程序可能已将 /actuator
用于其他目的。您可以使用 management.endpoints.web.base-path
属性更改管理端点的前缀,如以下示例所示:
management.endpoints.web.base-path=/manage
前面的 application.properties
示例将端点从 /actuator/{id}
更改为 /manage/{id}
(例如,/manage/info
)。
☀️ 除非已将管理端口配置为使用其他
HTTP
端口公开端点,否则management.endpoints.web.base-path
与server.servlet.context-path
相关。如果配置了management.server.port
,则management.endpoints.web.base-path
与management.server.servlet.context-path
相关。
使用默认HTTP端口公开管理端点是基于你使用云上部署的明智选择。但是,如果您的应用程序在您自己的数据中心内运行,您可能更喜欢使用不同的 HTTP 端口公开端点。
您可以设置 management.server.port
属性以更改 HTTP
端口,如以下示例所示:
management.server.port=8081
配置为使用自定义端口时,还可以使用各种 management.server.ssl.*
属性为管理服务器配置自己的 SSL。例如,这样做可以让主应用程序使用 HTTPS 时管理服务器通过 HTTP 可用,如以下属性设置所示:
server.port=8443
server.ssl.enabled=true
server.ssl.key-store=classpath:store.jks
server.ssl.key-password=secret
management.server.port=8080
management.server.ssl.enabled=false
或者,主服务器和管理服务器都可以使用 SSL 但具有不同的密钥库,如下所示:
server.port=8443
server.ssl.enabled=true
server.ssl.key-store=classpath:main.jks
server.ssl.key-password=secret
management.server.port=8080
management.server.ssl.enabled=true
management.server.ssl.key-store=classpath:management.jks
management.server.ssl.key-password=secret
您可以通过设置 management.server.address
属性来自定义管理端点可用的地址。如果您只想在内部或面向操作的网络上侦听或仅侦听来自 localhost
的连接,那么这样做会非常有用。
☀️ 仅当端口与主服务器端口不同时,才能侦听不同的地址。
以下示例 application.properties
不允许远程管理连接:
management.server.port=8081
management.server.address=127.0.0.1
如果您不想通过 HTTP 公开端点,可以将管理端口设置为 -1
,如以下示例所示:
management.server.port=-1