Spring Boot Admin

Spring Boot Admin用來管理和監控Spring Boot應用程式

第一部分 Spring Boot Admin 簡介

SpringBoot應用可以通過Actuator來暴露應用運行過程中的各項指標,Spring Boot Admin通過這些指標來監控SpringBoot應用,然後通過圖形化界面呈現出來。Spring Boot Admin不僅可以監控單體應用,還可以和Spring Cloud的注冊中心相結合來監控微服務應用。

對於我們來說,我們可以通過 Spring Boot Admin 瀏覽所有被監控的 Spring Boot 項目,詳細的 Health 信息、內存信息、JVM 系統和環境屬性、垃圾回收信息等。

Spring Boot Admin 可以提供應用的以下監控信息等:

  • 監控應用運行過程中的概覽資訊

  • 度量標信息,比如JVM、Tomcat及進程資訊

  • 查看環境變數,比如系統屬性、系統環境變量以及應用配置資訊

  • 查看所有創建的Bean資訊

  • 查看應用中的所有配置資訊

  • 查看應用運行日志資訊

  • 查看HTTP跟蹤資訊

Spring Boot Admin 由兩種角色組成:一種是 Server 端;一種是 Client 端,即要被監控的應用。

第二部分 簡單實作

Admin Server

引入Library

implementation group: 'de.codecentric', name: 'spring-boot-admin-server', version: '2.3.1'

啟用 Admin Server

@EnableAdminServer
@SpringBootApplication
public class MonitorAdminApplication {
    public static void main(String[] args) {
        SpringApplication.run(MonitorAdminApplication.class, args);
    }
}

application.yml 設置

spring:
  security:
    user:
      name: admin
      password: 1qaz2wsx
  application:
    name: monitorAdmin

server:
  port: 80

Client Server

引入Library

implementation group: 'de.codecentric', name: 'spring-boot-admin-starter-client', version: '2.3.1'

啟動程式

@SpringBootApplication
@EnableScheduling
@EnableTransactionManagement
public class ManualRechargeApplicationRestApi {

    public static void main(String[] args) {
        SpringApplication.run(ManualRechargeApplicationRestApi.class, args);
    }

    // 新版Default沒提供Http Trace 資料需自行複寫.
    @Bean
    public HttpTraceRepository httpTraceRepository() {
        return new InMemoryHttpTraceRepository();
    }
}

application.yml 設置

spring:
  application:
    name: manualRecharge
  boot:
    admin:
      client:
        username: admin
        password: 1qaz2wsx
        url: http://localhost:80 #配置admin-server地址
        instance:
          service-base-url: http://localhost:8080
server:
  port: 8080

management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: always
    shutdown:
      enabled: true
  health:
    redis:
      enabled: false

實作結果

參考網站:

Last updated