跳至主要內容

Spring Boot Admin使用

xw大约 3 分钟SpringJavaSpring Boot

Spring Boot Actuator 提供了对单个 Spring Boot 应⽤的监控,信息包含应⽤状态、内存、线程、堆栈等,⽐较全⾯的监控了 Spring Boot 应⽤的整个⽣命周期。Spring Boot Admin是对不同实例的actuator信息的一个汇总、友好展示。

Spring Boot Admin使用

1.引入依赖

<dependencies>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-server</artifactId>
            <version>2.1.0</version>
        </dependency>

        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-server-ui</artifactId>
            <version>2.1.0</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

2.应用主类添加注解

@SpringBootApplication
// 说明这是一个服务端
@EnableAdminServer
public class SbaServer20Application {
    public static void main(String[] args) {
        SpringApplication.run(SbaServer20Application.class, args);
    }
}

客户端配置:

<dependencies>
        <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-actuator</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

applition.properties配置

server.port=8081
spring.application.name=Spring Boot Client
# 配置Admin Server地址
spring.boot.admin.client.url=http://localhost:8080
# 打开客户端 Actuator 的监控
management.endpoints.web.exposure.include=*

界面介绍

当我们启动Springboot admin后,访问 http://localhost:8080open in new window。在这里我监控了两个2个应用,config_server和eureka_server,每个应用有两个实例。
image-20221208093449597
journal记录日志信息。
image-20221208093431911
Spring Boot Admin 以图形化的形式展示了应⽤的各项信息,这些信息⼤多都来⾃于Spring Boot Actuator 提供的接⼝。利⽤图形化的形式很容易看到应⽤的各项参数变化,甚⾄有些⻚⾯还可以进⾏⼀些操作,⽐如改变打印⽇志的级别等.
image-20221208093439788Spring Boot Admin 以图形化的形式展示了应⽤的各项信息,这些信息⼤多都来⾃于
Spring Boot Actuator 提供的接⼝。利⽤图形化的形式很容易看到应⽤的各项参数变化,甚⾄有些⻚⾯还可以
进⾏⼀些操作,⽐如改变打印⽇志的级别等

查看接口信息
image-20221208093502080

邮件报警

Spring Boot Admin 将微服务中所有应⽤信息在后台进⾏了展示,⾮常⽅便我们对微服务整体的监控和治理。
但是我们的运营⼈员也不可能⼀天 24 ⼩时盯着监控后台,因此如果服务有异常的时候,有对应的邮件告警
就太好了,其实 Spring Boot Admin 也给出了⽀持。

1、添加依赖

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

2、邮箱配置

spring.mail.host=smtp.qq.com
spring.mail.username=xxx@qq.com
spring.mail.password=xxx
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.boot.admin.notify.mail.from=xxxxxx@qq.com
spring.boot.admin.notify.mail.to=xxxxxxxxxx@qq.com

在配置⽂件中添加邮件发送相关信息:邮件的发送者、接受者、协议、移动授权码等。手动停掉config_server,收到邮箱。
image-20221208093511676
这只是最基本的邮件监控,在实际的使⽤过程中,需要根据情况对邮件告警内容进⾏⾃定义,⽐如监控
堆内存和现场的使⽤情况,当到达⼀定⽐例的时候进⾏告警等。

总结

Spring Boot Admin 解决了我们对⼤规模 Spring Boot 应⽤监控的需求,Spring Boot Admin 充分利⽤了Actuator 开放的相关接⼝,采⽤优秀的图形界⾯将这些信息进⾏了展示,⽅便我们更加直观的查看集群中应⽤的状态。Spring Boot Admin 不仅可以监控单个 Spring Boot 应⽤,也可以结合 Spring Cloud 监控注册到
服务中⼼的所有应⽤状态,再结合报警系统的使⽤就可以随时感知到应⽤的状态变化。在实际⼯作中 SpringBoot Admin 是我们在后期运营中频繁⽤到的⼀个组件,应该作为重点关注。