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 应用列表
sba 监控的具体服务页面
右侧就是被监控服务的所有信息。
被监控服务的具体信息
服务细节
计划任务
该服务中的所有定时任务,以及任务的cron表达式。
服务中所有类列表
这里的类,包含引入依赖的jar里的类文件。
服务日志
服务中实时打印项目日志。
还可动态配置具体类的日志打印级别。
服务中每个线程的工作状态
映射
项目中所有的接口,包括引入依赖的接口。
缓存
这里的缓存是指spring cache 的内存缓存,和redis无关。
搭建sba监控
1、sba server 端
(1)引入依赖
(2)配置文件
指定sba server端的端口和sba server的服务名。
服务名可以不指定,但是端口是一定要的。
2、sba client 端
(1)引入依赖
(2)配置文件
3、server 端集成spring-sercurity
(1)引入spring-sercurity依赖
(2)添加以下配置类
(3)配置文件
添加spring.sercurity.user.name 和 password,这里配置的就是等会登录需要的账号和密码。
(4)client端变动
client端只需修改配置文件即可,如下:
4、server 端集成spring-mail
spring-mail 作用是:被监控的服务上下线进行通知。
(1)引入依赖
(2)配置文件
通过这样简单的配置就可以实现当被监控服务意外挂了,就会及时发送邮件提醒。
示例:
注意点
我在研究这个框架使用的时候,有两点弄了蛮久的。
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利用 Spring Boot Admin 进行项目监控管理