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客戶端訪問
