SpringBoot-Admin是一个用于管理和监控SpringBoot应用程序的开源项目。它提供了一个易于使用的Web界面,可以实时监控应用程序的健康状况、性能指标、日志和环境配置等信息。通过Actuator模块来收集和暴露应用程序的监控信息,使用Web Socket或者Server-Sent Events实时显示和更新监控面板,提供针对应用程序的管理和操作功能,如启动、关闭、重启等。本文将介绍如何配置和开启SpringBoot的Admin监控服务。
SpringBoot-Admin监控服务需要搭建服务端,服务端作为一个单独的项目发布,我们查看所有受此服务端监控的项目,都是通过访问该服务端的地址。
一、搭建SpringBoot-Admin项目(服务端)
1、创建SpringBoot项目
新建一个 Spring Boot 项目,并选择 SpringBoot-Admin(Server) 和 Spring Web 作为依赖。
在 pom.xml 文件中添加 SpringBoot-Admin 的依赖。依赖勾选 SpringBoot-Admin(Server) 和 SpringWeb。
这里我为了防止所有人都可以通过访问服务端端口,查看SBA内容,所以我额外添加了Security的依赖,这里不添加也是可以的,后面pom.xml里可以随时导入。
2、在启动类的前面加上@EnableAdminServer注解
在启动类上添加 @EnableAdminServer 注解,标识这是一个 SpringBoot-Admin 服务端。
3、设置服务端口
配置服务端口,确保服务能够正常启动。
4、启动SBA项目访问测试
启动 SpringBoot-Admin 服务端项目,访问配置的端口(例如:localhost:8088)
出现Spring Boot Admin控制台界面即为搭建成功。
二、配置需要被监听的项目(客户端)
1、添加客户端依赖
在被监听的 Spring Boot 项目的 pom.xml 增加 spring-boot-admin-starter-client 相关依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
2、配置客户端
在 application-dev.yml 中添加 SpringBoot-Admin 项目的客户端配置。
同时,配置Actuator,确保 Actuator 端点暴露,以便 SpringBoot-Admin 可以监控。
spring:
#Spring下面添加如下配置
application:
## 注册服务名
name: ProjectSchedule
# springbootAdmin
boot:
admin:
client:
#这里的8088端口就是SBA服务端的地址端口
url: http://127.0.0.1:8088
jackson:
serialization:
indent_output: true
# springbootAdmin配置和Spring平级
management:
endpoints:
jmx:
exposure:
include: '*'
web:
exposure:
include: '*'
exclude: configprops
# 排除对配置信息的监控,每次浏览这个节点的时候,
# 数据库的链接就一直释放不掉, 最后导致超时,因为配置信息的监控也不重要,
#enabled-by-default: true
info:
env:
enabled: true
endpoint:
health:
show-details: always
3、同时启动被监听项目和SBA服务端项目测试
同时启动被监听的项目和 SpringBoot-Admin 服务端项目,访问服务端页面即可看到被监听的应用列表,点击进去可以查看详细的监控信息。
两个项目均正常启动。
访问服务端页面可以看到应用列表里有我们刚刚引入SBA客户端配置的项目。
点击进去看到更详细的内容。
通过以上步骤,我们成功搭建了 SpringBoot-Admin 监控服务,在日后的开发过程中我们就可以通过 SpringBoot-Admin 轻松管理和监控 Spring Boot 应用程序了。
三、开启SpringBoot-Admin的优势与好处
1、实时监控
SpringBoot-Admin 提供了实时的监控信息,这是其最显著的优势之一。通过 SpringBoot-Admin 的直观监控面板,开发者可以随时随地了解应用程序的状态。这种实时监控的特性使得开发团队能够在应用程序出现问题时迅速作出反应,提高了故障排查的效率。无论是检测性能瓶颈、异常堆栈还是实时流量数据,SpringBoot-Admin都提供了丰富的监控数据,帮助开发者及时发现并解决潜在的问题,从而保障应用程序的稳定运行。
2、易于使用的 Web 界面
SpringBoot-Admin 不仅仅强调功能的强大,更注重用户体验。其采用了用户友好的 Web 界面,使得开发者能够直观、轻松地查看监控信息,而无需深入了解底层实现。这对于非运维人员来说是一个巨大的优势,因为他们无需花费大量时间学习复杂的监控工具或命令行参数。这种直观的设计有助于提高团队的整体效率,使得更多关注点能够集中在业务逻辑和应用程序的开发上。
3、管理功能:
SpringBoot-Admin 不仅仅是一个监控工具,它还提供了一系列强大的管理功能。通过 SpringBoot-Admin,开发者可以轻松地对应用程序进行管理操作,例如启动、关闭、重启等。这些功能的引入简化了部分运维工作,使得开发团队能够更加便捷地维护应用程序的运行状态。特别是在一些紧急情况下,通过 SpringBoot-Admin 的管理功能,运维人员可以快速采取措施,及时恢复服务,减少了故障对业务的影响。
4、客户端异常信息定位
SpringBoot-Admin 不仅关注整体性能和健康状况,还专注于单个客户端的异常信息定位。通过详细的异常堆栈、性能指标和日志,SpringBoot-Admin可以帮助开发者迅速定位和修复特定客户端的问题。这对于系统中复杂的微服务架构尤为重要,因为它允许开发者更有针对性地处理异常情况,提高了系统的可维护性。
5、报警与通知机制
SpringBoot-Admin 提供了灵活且可定制的报警与通知机制。通过配置合适的报警规则,当应用程序达到设定的异常条件时,SpringBoot-Admin能够及时发送通知,通常包括邮件、短信或即时消息。这种主动的异常通知机制有助于团队在问题发生时能够第一时间获知,进一步缩短了故障响应的时间,提高了系统的可用性。
6、总结
SpringBoot-Admin作为一款优秀的监控与管理工具,不仅在实时监控、界面友好、管理功能等方面表现出色,更为开发者提供了全方位的支持,助力构建更为稳定、高效的 Spring Boot 应用。其强大的功能和易用的界面使得监控与管理变得更加轻松,为开发者提供了更好的开发体验。