微服務學習筆記--使用Spring Boot Actuator監控端點
目錄
前言
微服務的這種架構雖然解決了單體應用的一些劣勢,但它也面臨一些挑戰,比如對運維的要求更高了。一個微服務架構中可能有幾十個上百個應用構成,要保證這些應用都正常執行,相互協調是比較麻煩的事情,因此我們需要一個元件來對這些應用進行監控和管理。
spring-boot-starter-actuator
就是Spring Boot提供這個功能的模組。
示例
執行環境:
Spring Boot 2.0.3.RELEASE
1、引入依賴
<dependency>
<groupId>org.springframework.boot</groupId >
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2、啟動應用
重新啟動應用訪問 http://localhost:8000/actuator/health
會顯示如下資訊:
{
status: "UP"
}
Actuator監控管理預設的訪問路徑是在 /actuator
下。在測試Spring Boot 1.5.9版本時是直接訪問端點路徑,不需要加 /actuator
配置
除了health端點外,Actuator還為我們提供了很多端點,有些可以直接訪問,有些需要授權或通過配置才能訪問。
端點列表
端點 | 描述 |
---|---|
actuator |
為其他端點提供基於超媒體的“發現頁面”。要求Spring HATEOAS在類路徑上 |
auditevents |
公開當前應用程式的稽核事件資訊 |
autoconfig |
顯示自動配置報告,顯示所有自動配置候選項以及它們“未被”應用的原因 |
beans |
顯示應用程式中所有Spring bean的完整列表 |
configprops |
顯示所有配置資訊。 |
dump |
列印執行緒棧 |
env |
檢視所以環境變數 |
health |
顯示應用程式執行狀況資訊 |
info |
顯示應用資訊 |
loggers |
顯示和修改應用程式中記錄器的配置 |
liquibase |
顯示已應用的任何Liquibase資料庫遷移 |
metrics |
顯示當前應用程式的“指標”資訊 |
mappings |
顯示所有@RequestMapping路徑的整理列表 |
shutdown |
允許應用程式正常關閉(預設情況下不啟用) |
trace |
顯示跟蹤資訊(預設情況下是最近的100個HTTP請求 |
Actuator配置
自定義預設路徑
management.endpoints.web.base-path = /application
修改後訪問端點的預設路徑不再是
/actuator
而是/application
自定義訪問埠號
management.server.port= 8012
修改後我們檢視Actuator需要修改成8012埠進行訪問,如
http://localhost:8012/actuator/health
關閉驗證
management.security.enabled= false
預設情況下只開放了
health
與info
埠,關閉驗證後,其它的也可以訪問了,但不安全,最好新增security
驗證
控制端點是否開放
management.endpoints.web.exposure.include= 'info'
表示只暴露
info
埠,如新增其它埠使用,
分隔,暴露所有埠使用*
埠屬性配置
management.endpoint.埠名.屬性=值
如
management.endpoint.health.show-details= always
表示顯示health
埠的詳細資訊,大多數埠可以這樣配置。
整合Spring Security
監控端點的很多資訊住信比較隱私,不能讓沒有許可權的人隨意檢視,因此可以新增Srping Security進行控制。
新增依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
配置Security
spring:
security:
user:
name: user
password: 123
配置security後,訪問埠需要進行登陸驗證。