注册

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依赖


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

增加注解


@EnableAdminServer



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



3.2 增加鉴权


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


Maven依赖


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

配置文件


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

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



3.3 增加邮件推送


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


我们以邮件通知为例。


Maven依赖


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

配置


# 邮箱配置
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依赖


<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>

# 服务端地址
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 日志配置增加日志



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


这是官方的描述:



我们增加配置:


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([.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx (2)

启动查看结果:



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


4.4 缓存


【缓存】是没有数据的:



缓存依赖


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

代码



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



4.5 计划任务


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



监控结果:



05 小结


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


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


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


作者:SimonKing
来源:juejin.cn/post/7542450691911155762

0 个评论

要回复文章请先登录注册