spring-boot-admin

阅读使用spring-boot-admin对spring-boot服务进行监控
实践笔记

文章以代码的方式演示三个内容

  • 监控单体spring-boot应用
  • 监控多个微服务spring-boot应用
  • 邮件服务

自己实践了前两个。按自己的理解找了一个原理解释,帮助自己理解spring-cloud体系。

什么是Spring Boot Admin

Spring Boot Admin 是一个针对spring-boot的actuator接口进行UI美化封装的监控工具。他可以:在列表中浏览所有被监控spring-boot项目的基本信息,详细的Health信息、内存信息、JVM信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,还可以直接修改logger的level。

监控单体应用

服务端

  • 添加spring-boot-admin-serverspring-boot-admin-server-ui
  • main函数使用spring-boot的通用写法,并添加@Configuration,@EnableAutoConfiguration,@EnableAdminServer注解
  • 配置文件修改端口(可选),默认是8080

被监控的应用

  • 添加spring-boot-admin-starter-client依赖
  • 添加配置
    1
    2
    3
    4
    5
    server.port=8001
    # 配置Admin Server的地址(要与上面的地址与端口对应)
    spring.boot.admin.url=http://localhost:8080
    # 关闭安全验证
    management.security.enabled=false

启动被监控的应用。

在服务端就可以看到单体应用的相关信息。

监控微服务

这个我直接拿 源代码,来运行。
需要注意的是要把子模块spring-boot-admin-serverspring-boot-starter-mail依赖去掉。不然会出现邮箱配置错误,不断重启的问题。

他使用四个示例项目来演示:

  • spring-boot-admin-server Admin Server端
  • spring-cloud-eureka 注册中心
  • spring-cloud-producer 应用一,Admin Client端
  • spring-cloud-producer-2 应用二,Admin Client端

spring-boot-admin-server

依赖

与上面所需要的依赖一样,增加了spring-cloud-starter-eureka的注册中心的依赖

配置

增加了对eureka的配置

1
2
3
4
5
6
7
# 表示eureka client发送心跳给server端的频率。
eureka.instance.leaseRenewalIntervalInSeconds=10
# Eureka Client缓存的定期更新周期
eureka.client.registryFetchIntervalSeconds=5
# Eureka Server地址
eureka.client.serviceUrl.defaultZone=${EUREKA_SERVICE_URL:http://localhost:8761}/eureka/
management.security.enabled=false

启动类

1
2
3
4
@Configuration
@EnableAutoConfiguration
@EnableDiscoveryClient
@EnableAdminServer

Client端

项目依赖

  • spring-cloud-starter-eureka
  • spring-boot-admin-starter-client

配置文件

1
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

启动类

1
2
@SpringBootApplication
@EnableDiscoveryClient

注册中心

依赖

  • spring-cloud-starter-eureka-server

配置

1
2
server.port=8761
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

启动类

1
2
@SpringBootApplication
@EnableEurekaServer

更多