54. 通过 HTTP 进行监视和 Management
如果您正在开发 Web 应用程序,则 Spring Boot Actuator 会自动配置所有启用的端点以通过 HTTP 公开。默认约定是使用端点的id
和前缀/actuator
作为 URL 路径。例如,health
被公开为/actuator/health
。提示:Spring MVC,Spring WebFlux 和 Jersey 本身支持 Actuator。
54.1 自定义 Management 端点路径
有时,自定义 Management 端点的前缀很有用。例如,您的应用程序可能已经将/actuator
用于其他用途。您可以使用management.endpoints.web.base-path
属性来更改 Management 端点的前缀,如以下示例所示:
management.endpoints.web.base-path=/manage
前面的application.properties
示例将端点从/actuator/{id}
更改为/manage/{id}
(例如/manage/info
)。
Note
除非 Management 端口已配置为通过使用其他 HTTP 端口公开端点,否则management.endpoints.web.base-path
是相对于server.servlet.context-path
的。如果配置了management.server.port
,则management.endpoints.web.base-path
相对于management.server.servlet.context-path
。
如果要将端点 Map 到其他路径,可以使用management.endpoints.web.path-mapping
属性。
以下示例将/actuator/health
重新 Map 到/healthcheck
:
application.properties.
management.endpoints.web.base-path=/
management.endpoints.web.path-mapping.health=healthcheck
54.2 自定义 Management 服务器端口
对于基于云的部署,使用默认的 HTTP 端口公开 Management 端点是明智的选择。但是,如果您的应用程序在自己的数据中心内运行,则您可能更喜欢使用其他 HTTP 端口公开端点。
您可以设置management.server.port
属性来更改 HTTP 端口,如以下示例所示:
management.server.port=8081
54.3 配置特定于 Management 的 SSL
当配置为使用自定义端口时,还可以通过使用各种management.server.ssl.*
属性将 Management 服务器配置为其自己的 SSL。例如,这样做可以使 Management 服务器在主应用程序使用 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
另外,主服务器和 Management 服务器都可以使用 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
54.4 自定义 Management 服务器地址
您可以通过设置management.server.address
属性来自定义 Management 端点可用的地址。如果您只想侦听内部或面向操作的网络,或者只侦听来自localhost
的连接,则这样做很有用。
Note
仅当端口与主服务器端口不同时,您才能在其他地址上侦听。
以下示例application.properties
不允许远程 Management 连接:
management.server.port=8081
management.server.address=127.0.0.1
54.5 禁用 HTTP 端点
如果您不想通过 HTTP 公开端点,则可以将 Management 端口设置为-1
,如以下示例所示:
management.server.port=-1
也可以使用management.endpoints.web.exposure.exclude
属性来实现,如以下示例所示:
management.endpoints.web.exposure.exclude=*