要进行监控,需要两个Project,一个是Admin Server端,负责监控Spring boot的项目,另一个是Admin Client端,是被监控的Spring boot服务。
Admin Server端
首先配置文件pom.xml导入函数依赖。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>admin</groupId>
<artifactId>admin</artifactId>
<version>1.0-SNAPSHOT</version> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
</parent> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.6.RELEASE</version>
</dependency> <dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.1.6</version>
</dependency> <!--监控-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency> <dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-server-ui</artifactId>
<version>2.0.1</version>
</dependency>
</dependencies>
</project>
然后写配置文件application.yml
spring:
application:
name: admin-server
server:
port: 9090
最后补全项目的主类
package cy; import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
@EnableAdminServer public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args); }
}
这时进入 http://localhost:9090/ 看到如下界面就表示第一步Server端已经完成。
Admin Client端
在被监控的Project文件的pom.xml文件中加上下面的依赖
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.1.0</version>
</dependency>
</dependencies>
配置文件分为两类,如果你配置的是application.yml
//application.yml
server:
port: 8080
spring:
application:
name: Admin Client
boot:
admin:
client:
url: http://localhost:9090
management:
endpoints:
web:
exposure:
include: '*'
如果配置的是application.properties
//application.properties
server.port=8080
spring.application.name=Admin Client
spring.boot.admin.client.url=http://localhost:9090
management.endpoints.web.exposure.include=*
两者的区别可以看https://www.cnblogs.com/*-/p/11306854.html
运行Client的主类,可以看到
选择进入该项目,可以看到
这个时候我们就可以监控到这个服务的各项指标。
文章的最后我们来解释一下这个配置文件的含义,推荐使用application.yml,这里为了方便排版使用了application.properties:
server.port=8080 就是被监控的项目所运行在的端口;
spring.application.name=Admin Client Client名称;
spring.boot.admin.client.url=http://localhost:9090 监控程序在的位置,让这两者可以找到;
management.endpoints.web.exposure.include=* 开放给监控程序的权限,这里的✳代指所有的权限。