51. 通过HTTP监控和管理
如果你正在开发一个web应用程序,Spring Boot Actuator会自动配置通过HTTP公开的所有已启用的端点,默认约定是使用带有/actuator
前缀的端点id
作为URL路径,例如,health
公开为/actuator/health
。
Actuator由Spring MVC、Spring WebFlux和Jersey支持
51.1 自定义管理端点路径
有时,为管理端点定制前缀是有用的,例如,你的应用程序可能已经将/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
的。
51.2 自定义管理服务器端口
使用默认的HTTP端口公开管理端点是基于云的部署的明智选择,但是,如果你的应用程序运行在你自己的数据中心中,你可能倾向于使用不同的HTTP端口来公开端点。你可以设置management.server.port
属性改变HTTP端口,如下例所示:
management.server.port=8081
51.3 配置管理特定SSL
当配置为使用自定义端口时,管理服务器还可以使用各种management.server.ssl.*
属性配置自己的SSL,例如,这样做可以让管理服务器通过HTTP可用,而主应用程序使用HTTPS,如下面的属性设置所示:
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
51.4 自定义管理服务器地址
你可以通过设置management.server.address
属性来定制管理端点可用的地址,如果你希望只监听内部网络或面向操作系统的网络,或者只监听来自localhost
的连接,那么这样做是很有用的。
只有当端口与主服务器端口不同时,才能监听不同的地址
下面的示例application.properties
不允许远程管理连接:
management.server.port=8081
management.server.address=127.0.0.1
51.5 禁用HTTP端点
如果不希望通过HTTP公开端点,则可以将管理端口设置为-1
,如下例所示:
management.server.port=-1