Spring Boot Admin:一站式监控微服务,这个运维神器真香!

关注我的公众号:【编程朝花夕拾】,可获取首发内容。

01 引言

在现代微服务架构中,应用实例的数量动辄成百上千。传统的逐个登录服务器查看日志、检查状态的方式早已变得低效且不现实。

因此,一个集中化、可视化、且能提供实时健康状态的管理平台变得至关重要。Spring Boot Admin (SBA) 正是为了满足这一需求而生的强大工具。

然而,各种厂商的云服务提供了各种监控服务解决客户的各种痛点。Spring Boot Admin这样的工具似乎关注度没有那么高。小编也是无意间发现这款产品,分享给大家。

02 简介

Spring Boot Admin 是一个用于管理和监控 Spring Boot 应用程序的开源社区项目。它并非官方 Spring 项目,但在社区中备受推崇并被广泛使用。

其核心原理是:一个作为"服务器"(Server)的中央管理端,通过收集并展示众多作为"客户端"(Client)的 Spring Boot 应用的监控信息。

Spring Boot Admin 通过集成 Spring Boot Actuator 端点来获取应用数据,并提供了一个友好的 Web UI 界面来展示这些信息。

主要分为两部分:

  • 服务端:监控平台
  • 客户端:业务端

SpringBoot的版本和Spring Boot Admin有一定的对应关系:

GitHub地址:github.com/codecentric...

文档地址:docs.spring-boot-admin.com/

03 Admin服务端

服务的端配置相当简单,只需要引入依赖,启动增加注解。服务端的基础配置就算完成了。

3.1 基础配置

Maven依赖

xml 复制代码
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>${latest.version}</version>
</dependency>

增加注解

@EnableAdminServer

这两个配置就可访问项目的IP+端口,进入管理页面了。

3.2 增加鉴权

为了数据安全,可以增加鉴权。拥有账号和密码方可进入。

Maven依赖

xml 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

配置文件

properties 复制代码
# 设置自己的用户名和密码
spring.security.user.name=admin
spring.security.user.password=123456

输入对应的用户名和密码就可以进入了。

3.3 增加邮件推送

官方提供了各种通知,也可以自定义,如图:

我们以邮件通知为例。

Maven依赖

xml 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

配置

properties 复制代码
# 邮箱配置
spring.mail.host=smtp.163.com
spring.mail.port=25
spring.mail.username=用户名
spring.mail.password=*****[授权码]

# 发送和接受邮箱
spring.boot.admin.notify.mail.to=wsapplyjob@163.com
spring.boot.admin.notify.mail.from=wsapplyjob@163.com

客户端下线之后会触发邮件:

04 Adamin客户端

因为服务端是依赖Spring Boot Actuator 端点来获取应用数据,所以我们需要开放期其所有的服务。

4.1 基础配置

Maven依赖

xml 复制代码
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>${latest.version}</version>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
properties 复制代码
# 服务端地址
spring.boot.admin.client.url=http://127.0.0.1:8081
# 鉴权信息
spring.boot.admin.client.username=admin
spring.boot.admin.client.password=123456

# 开发所有的暴漏的信息
management.endpoints.web.exposure.include=*

4.2 监控界面

进入之后,我们就会发现上面的页面。点击应用墙,就会展示所有监控的实例。进入之后如图:

进入之后就可以看到五大块。其中②就是我们之前看到的日志级别的控制。还包含了缓存、计划任务、映射甚至类之间的依赖关系。

因为界面支持中文,里面具体的功能就不做描述,感兴趣的可以自己的探索。

4.3 日志配置增加日志

默认的日志进去只有日志的级别,并不会打印日志。

这是官方的描述:

我们增加配置:

properties 复制代码
logging.file.name=/var/log/boot-log.log
logging.pattern.file=%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx (2)

启动查看结果:

我们就可以看到信的菜单:日志文件

4.4 缓存

【缓存】是没有数据的:

缓存依赖

xml 复制代码
<!-- 监控缓存需要的依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
</dependency>

代码

触发缓存任务之后,就会出现缓存的管理:

4.5 计划任务

【计划任务】和缓存基本一样,但是无需引入第三方依赖。使用@Scheduled即可。

监控结果:

05 小结

Spring Boot Admin 以其简洁的配置、强大的功能和友好的界面,成为了 Spring Boot 微服务监控领域的事实标准。它极大地降低了监控和运维的复杂度,让开发者能够更专注于业务逻辑开发。

对于中小型规模的微服务集群,直接使用 SBA 是一个高效且成本低廉的解决方案。

赶快去探索里面不同的功能的吧!

相关推荐
狗头大军之江苏分军13 分钟前
频繁跳槽和稳定工作有什么区别?真的比稳定工作的人差吗?
前端·后端
m0_4805026417 分钟前
Rust 入门 注释和文档之 cargo doc (二十三)
开发语言·后端·rust
mask哥18 分钟前
详解flink SQL基础(四)
java·大数据·数据库·sql·微服务·flink
秋难降24 分钟前
聊聊 “摸鱼式” 遍历 —— 受控遍历的小心机
数据结构·算法·程序员
黑土豆25 分钟前
那些藏在云边小卖部里的温暖与遗憾
程序员
Sheeep26 分钟前
Cursor 的使用之学会使用 cursor rule
javascript·后端
灰原喜欢柯南27 分钟前
Spring Boot 自动配置全流程深度解析
java·spring boot·后端
Code_Artist31 分钟前
[Java并发编程]4.阻塞队列
java·数据结构·后端
CryptoRzz32 分钟前
使用Java对接印度股票市场API开发指南
前端·后端