什麼是 Spring Boot Admin?
Spring Boot Admin 是一個管理和監控 Spring Boot 應用程序的開源軟件。每個應用都認爲是一個客戶端,通過 HTTP 或者使用 Eureka 註冊到 admin server 中進行展示,Spring Boot Admin UI 部分使用 VueJs 將數據展示在前端。
這篇文章給大家介紹如何使用 Spring Boot Admin 對 Spring Boot 應用進行監控。
一.server 端
1.新建一個spring-boot項目,版本爲2.1.0
2.項目依賴
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3.application.yml
server:
port: 8000
4.啓動類
@SpringBootApplication
@EnableAdminServer
public class SpringBootAdminApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootAdminApplication.class, args);
}
}
啓動項目,訪問http://localhost:8000,因爲沒有client註冊到server,instances爲0,下面是client段
二.client端
用http註冊到server端
1.新建一個spring-boot項目,版本爲2.1.0
2.項目依賴
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3.application.yml
server:
port: 8001
spring:
application:
name: admin-client
boot:
admin:
client:
url: http://localhost:8000 #配置 Admin Server 的地址
management:
endpoints:
web:
exposure:
include: '*' #打開客戶端 Actuator 的監控
4.啓動類
@SpringBootApplication
public class AdminClientApplication {
public static void main(String[] args) {
SpringApplication.run(AdminClientApplication.class, args);
}
}
啓動項目後,訪問localhost:8080 可以看到
點擊綠色地址,可以如下界面,運行時配置,JVM等信息都有,非常方便
3.jhipster
參考搭建JHipster,jhipster=eureka + central-config + UI,說白了就是打包
client端
用eureka註冊到server端
1.項目依賴 注意必須要引入下方dependencyManagement
</dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.5.RELEASE</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2.application.yml
eureka:
instance:
prefer-ip-address: true
client:
region: default
registryFetchIntervalSeconds: 5
serviceUrl.defaultZone: http://admin:admin@localhost:8761/eureka/
刪除以下
spring:
boot:
admin:
client:
url: http://localhost:8000 #配置 Admin Server 的地址
啓動項目,訪問http://localhost:8761能看到以下界面,說明註冊成功,但admin中沒有client端
server端
server端註冊jhipster,從它獲取所有註冊到eureka服務信息
1.項目依賴
同client端一樣
2.application.yml
eureka:
instance:
prefer-ip-address: false
client:
region: default
registryFetchIntervalSeconds: 5
serviceUrl.defaultZone: http://admin:admin@localhost:8761/eureka/
spring:
application:
name: spring-boot-admin
啓動server端,訪問http://localhost:8000,可以看到如下界面,獲取到eureka的服務端信息