使用SpringBoot Actuator監控應用

Joepis發表於2018-05-16

Actuator是Spring Boot提供的對應用系統的自省和監控的整合功能,可以對應用系統進行配置檢視、相關功能統計等。

使用Actuator

引入依賴即可

  • Maven
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
複製程式碼
  • Gradle
compile('org.springframework.boot:spring-boot-starter-actuator')
複製程式碼

Endpoints

列舉一些主要的endpoints

endpoints.png

配置檔案屬性介紹

地址和埠的配置

  • management.port:指定訪問這些監控方法的埠,與邏輯介面埠分離。如果不想將這些暴露在http中,可以設定 management.port = -1
  • management.address:指定地址,比如只能通過本機監控,可以設定 management.address = 127.0.0.1

敏感資訊訪問限制

根據上面表格,鑑權為false的,表示不敏感,可以隨意訪問,否則就是做了一些保護,不能隨意訪問。

endpoints.mappings.sensitive=false

這樣需要對每一個都設定,比較麻煩。敏感方法預設是需要使用者擁有ACTUATOR角色,因此,也可以設定關閉安全限制:

management.security.enabled=false

或者配合Spring Security做細粒度控制。

自定義系統資訊

可以通過訪問/info獲取資訊,需要在配置檔案設定

info:
  aaa:
    name: xxx
    email: xxx@qq.com
  bbb:
    age: 25
    hobbies: running
  build:
    artifact: "@project.artifactId@"
    name: "@project.name@"
    version: "@project.version@"
複製程式碼

此時訪問localhost:8080/info返回一下資訊

這裡寫圖片描述

如果使用maven,可以訪問pom.xml檔案的資訊,用法如下:

// 獲取pom.xml中project節點下artifactId屬性 artifact: "@project.artifactId@"

其他

/shutdown這個需要post方式,通過請求來關閉應用。 這個操作比較敏感,要想真正生效,需要以下配置:

endpoints.shutdown.enabled: true

  • 我們可以通過實現HealthIndicator介面,編寫自己的/health方法邏輯。也可以增加自定義監控方法。
  • 檢視詳細介紹,請移步 官方文件

相關文章