SpringBoot實戰第十一章應用監控筆記
SpringBoot 提供了運行時的應用監控和管理功能,可以通過http,JMX, SSH協議來進行操作
Spring Initializr依賴為 Actuator,Web,HATEOAS
1. 監控和管理端點
端點名 | 描述 |
actuator | 所有EndPoint的列表,需加入spring HATEOAS |
autoconfig | 當前應用的所有自動配置 |
beans | 當前應用的所有Bean信息 |
configprops | 當前應用的所有配置屬性 |
dump | 顯示當前應用線程狀態信息 |
env | 顯示當前應用當前環境信息 |
health | 顯示當前應用健康狀況 |
info | 顯示當前應用信息 |
metrics | 顯示當前應用的各項指標信息 |
mappings | 顯示所有的@RequestMapping映射的路徑 |
shutdown | 關閉當前引用(默認關閉),不支持GET,支持POST |
trace | 顯示追蹤信息 |
2. 定制端點
1) 修改端點id,改變訪問端點的URL地址: endpoints.端點名.id=新端點名
2) 開啟和關閉端點: endpoints.端點名.enabled=true|false
3) 控制所有端點開關,可以在此之后進行單個的開操作: endpoints.enabled=false
4) 修改端點訪問路徑: management.context-path=/manage
5) 修改端點訪問端口: management.port=8081 值為-1時關閉http端點
3. 自定義端點
繼承AbstractEndpoint並且注冊為Bean
4. 自定義HealthIndicator
實現HealthIndicator並且注冊為Bean
Spring中內置的HealthIndicator:
名稱 | 描述 |
DiskSpaceHealthIndicator | 檢測低磁盤空間 |
DataSourceHealthIndicator | 檢測DataSource連接是否能獲得 |
ElasticsearchHealthIndicator | 檢測Elasticsearch是否運行 |
JmsHealthIndicator | 檢測JMS消息代理是否在運行 |
MailHealthIndicator | 檢測郵件服務器是否在運行 |
MongoHealthIndicator | 檢測MongoDB是否在運行 |
RabbitHealthIndicator | 檢測RabbitMQ是否在運行 |
RedisHealthIndicator | 檢測Redis是否在運行 |
SolrHealthIndicator | 檢測Redis是否在運行 |
5. JMX對應用進行監控和管理
在控制台中打開Java內置的jconsole打開界面,選擇當前程序的進程,進入Mbean標簽
6. SSH訪問
依賴為Remote Shell(spring-boot-starter-remote-shell)
使用SSH客戶端訪問