什么是 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的服务端信息