SBA 监控SpringBoot项目

Posted POJO

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SBA 监控SpringBoot项目相关的知识,希望对你有一定的参考价值。

引言:

公司的后台服务项目从去年的2个慢慢的变成了6个。
领导想要一个java框架监控,可以清楚,直观的监控这几个后台服务,并且上下线的时候进行邮件通知。
由于是后台服务,那么是不暴露端口的,但是网上找了好久,没有不暴露就可以监控的java框架。所以研究下sba —— spring boot admin。

sba介绍:

sba是用来监控spring boot项目的框架,通过项目所暴露的端口来收集相关服务信息。
收集的信息有:
1、服务细节:端口号、进程号、cpu占用率、内存占用率、jvm的堆内存、非堆内存使用情况等。
2、计划任务:定时任务之类。
3、服务中所有类的信息。
4、服务所打印的日志信息。
5、服务中所有线程的工作状态。
6、服务中所有接口信息;包括项目里自己写的,也包含所引入依赖的接口。
7、服务中所有缓存信息;这里的缓存是指spring cache的缓存。

sba监控架构:

sba server 监控界面:

  • sba 应用墙

SBA 监控SpringBoot项目

  • sba 应用列表

SBA 监控SpringBoot项目

sba 监控的具体服务页面

SBA 监控SpringBoot项目

右侧就是被监控服务的所有信息。

被监控服务的具体信息

  • 服务细节

SBA 监控SpringBoot项目

  • 计划任务

SBA 监控SpringBoot项目

该服务中的所有定时任务,以及任务的cron表达式。

  • 服务中所有类列表

SBA 监控SpringBoot项目

这里的类,包含引入依赖的jar里的类文件。

  • 服务日志

SBA 监控SpringBoot项目

服务中实时打印项目日志。
还可动态配置具体类的日志打印级别。

SBA 监控SpringBoot项目

  • 服务中每个线程的工作状态

SBA 监控SpringBoot项目

  • 映射

SBA 监控SpringBoot项目

项目中所有的接口,包括引入依赖的接口。

  • 缓存

SBA 监控SpringBoot项目

这里的缓存是指spring cache 的内存缓存,和redis无关。

搭建sba监控

1、sba server 端

(1)引入依赖

SBA 监控SpringBoot项目

(2)配置文件

SBA 监控SpringBoot项目

指定sba server端的端口和sba server的服务名。
服务名可以不指定,但是端口是一定要的。

2、sba client 端

(1)引入依赖

SBA 监控SpringBoot项目

(2)配置文件

SBA 监控SpringBoot项目

3、server 端集成spring-sercurity

(1)引入spring-sercurity依赖

SBA 监控SpringBoot项目

(2)添加以下配置类

SBA 监控SpringBoot项目

(3)配置文件

SBA 监控SpringBoot项目

添加spring.sercurity.user.name 和 password,这里配置的就是等会登录需要的账号和密码。

(4)client端变动

client端只需修改配置文件即可,如下:

SBA 监控SpringBoot项目

SBA 监控SpringBoot项目

4、server 端集成spring-mail

spring-mail 作用是:被监控的服务上下线进行通知。

(1)引入依赖

SBA 监控SpringBoot项目

(2)配置文件

SBA 监控SpringBoot项目

通过这样简单的配置就可以实现当被监控服务意外挂了,就会及时发送邮件提醒。

示例:
SBA 监控SpringBoot项目

注意点

我在研究这个框架使用的时候,有两点弄了蛮久的。
1、监控页面的缓存tab。使用redis缓存,死活出不来,后来才知道是spring-cache的缓存才会显示。(强调很多次了)
2、监控页面的日志配置,如何实时显示应用打印的日志,以及切换打印日志的级别。
这一点,需要在配置文件添加以下配置

注意这个logbak-spring.xml文件,这个是日志配置的文件,命名不是固定这个的。

和spring cloud微服务联合使用

这里就不详细贴过程了,贴一个架构。

在结合spring cloud使用的时候,这个时候client端并没有直接和server端交互。
server端是直接获取spring cloud的注册中心里的所有微服务进行监控。

总结

1、sba 框架分为server端,client端。
2、通常sba要继承spring-sercurity以及spring-mail。
3、sba 结合 sc 注册中心进行监控方式。
4、注意sba监控的缓存是和spring-cache结合的。


以上是关于SBA 监控SpringBoot项目的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot Admin 添加报警提醒和登录验证功能!

Spring Boot Admin,贼好使!

Spring Boot利用 Spring Boot Admin 进行项目监控管理

Spring cloud

spring Boot(十九):使用Spring Boot Actuator监控应用

SpringBoot整合MyCat实现读写分离,稳进大厂