Spring Boot Admin服务监控
一、介绍
1、SBA简介
Spring Boot Admin(SBA)是一个开源的社区项目,用于管理和监控 Spring Boot 应用程序。应用程序可以通过 http 的方式,或 Spring Cloud 服务发现机制注册到 SBA 中,然后就可以实现对 Spring Boot 项目的可视化管理和查看了。
Spring Boot Admin 可以监控 Spring Boot 单机或集群项目,它提供详细的健康 (Health)信息、内存信息、JVM 系统和环境属性、垃圾回收信息、日志设置和查看、定时任务查看、Spring Boot 缓存查看和管理等功能。
2、SBA工程介绍
Spring Boot Admin分为服务端和客户端,服务端、客户端都是独立的web项目,服务端是监控程序,客户端是被监控的程序,这里需要创建两个SpringBoot工程,一个对应服务端,一个对应客户端
二、SBA服务端构建
1、SBA服务端简单构建
首先新建一个SpringBoot工程,在pom.xml
中导入相关依赖
1 | <dependency> |
其次在配置文件设置好端口后,在启动类上添加注解@EnableAdminServer
,启动项目打开浏览器访问http://ip:port
即可访问
2、服务端访问权限设置
2.1 Spring Security账号登录
SBA 默认是没有权限验证的,而生产环境一定要配置权限验证,我们这里通过添加 Spring Security 框架来实现权限拦截。首先引入相关依赖
1 | <!--springboot security 安全相关--> |
在application.properties
里设置账号密码
1 | #配置一个账号和密码 |
编写配置类
1 | /** |
2.2 客户端actuator端口保护
另外客户端是要暴露actuator的web端口的,为了安全,客户端只允许服务端请求actuator的web接口,为了方便客户端区分请求来源,我们在请求头注入自定义参数
1 | /** |
3、数据监控与通知
3.1 自带邮件报警通知
邮件相关可以参考SpringBoot异步、邮件、定时任务
首先引入邮件相关依赖
1 | <dependency> |
在 SBA 的配置文件 application.properties
中添加以下收、发邮箱的配置
1 | # 配置发送邮箱 |
经过以上配置之后,无需添加任何代码,就可以实现项目状态改变的邮件提醒功能了。
3.2 自定义通知
自定义通知,当实例状态发生改变,及时通知(发邮件、企业微信、钉钉都可以,自己实现)
1 | /** |
三、SBA客户端构建
1、简单构建
新建工程,导入相关依赖
1 | <dependency> |
在application.yml
中配置
1 | spring: |
配置完启动后就可以查看相关监控项,具体客户端的监控首页,有我们在客户端写的info信息、磁盘监控、堆、非堆内存监控、进程、线程监控、垃圾回收监控
2、actuator的web端口安全设置
客户端是要暴露actuator的web端口的,为了安全,客户端只允许服务端请求actuator的web接口(通过约定好的请求头来判断)
1 | /** |
四、总结
SpringBoot-Admin监控Client有两种模式:
-
Client端引入spring-boot-admin-starter-client依赖,配置好Server的相关信息。
-
将所有Client端注册到服务发现(Eureka)组件中去,同时把Server端也注册,这样Server端就可以监控所有Client端了,不用对Client都添加依赖。
参考文章: