> For the complete documentation index, see [llms.txt](https://xu-min-chang.gitbook.io/caster-develop-note/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://xu-min-chang.gitbook.io/caster-develop-note/java/spring-boot/spring-boot-admin.md).

# Spring Boot Admin

### 第一部分 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

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

application.yml 設置

```yaml
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'
```

啟動程式

```java
@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 設置

```yaml
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
```

## 實作結果

![](/files/Zc0Jd9bXcDMpkffdDlX5)

參考網站：

* <https://cloud.tencent.com/developer/article/1752851>
