大家好,我是堆栈管理员。前言哈哈,有点标题党,其实SpringBootAdmin这个项目已经开源好几年了,栈长一看:最早有记录的版本是2014年的,SpringBoot是开源的同年:https://github。com/codecentri...Github关注度超过10k+,不冷不热。.可能还有一些朋友还没有用过:这是什么项目?它有什么用?它与SpringBoot有什么关系?本文栈长将带你解开这些谜团。.SpringBootAdmin简介SpringBootAdmin=SpringBoot+Admin,用于管理和监控SpringBoot应用,不是SpringBoot官方提供的,是由一个社区开源的。主要功能如下:显示健康状态显示详细指标(如:jvm、内存、千分尺、数据源、缓存等)监控和下载日志文件显示jvm中的系统和环境变量显示SpringBoot配置属性简单日志级别管理支持与JMXbean交互显示线程堆栈下载堆信息显示http跟踪显示http端点显示计划任务显示/删除活动会话显示Flyway/Liquibase迁移状态更改通知看起来很有用,对吧?你可以学到很多关于SpringBoot系统的知识。实战不废话,现在开始实战。SpringBoot应用程序通过SpringBootAdminClient通过http注册,SpringCloud应用程序通过Eureka、Consul等注册,UI只是SpringBootActuator端点之上的Vue.js应用程序。本文使用一个SpringBoot应用进行演示,所以我们先搭建一个SpringBootAdminServer(服务端),再搭建一个Client(应用客户端)进行测试。SpringCloud服务注册可以参考:https://codecentric.github.io...1.搭建SpringBootAdminServerSpringBoot的基础知识就不介绍了。推荐这个实战教程:https://github.com/javastacks..。或者看看栈长之前的SpringBoot系列教程:年轻人的第一个SpringBoot应用,太爽了!首先通过上面的教程搭建一个简单的SpringBoot初始项目,端口为:8080。然后添加SpringBootAdminServer依赖:-starter-server.versionorg.springframework.bootspring-boot-starter-web在启动类中添加@EnableAdminServer启用SpringBootAdminServer:/***作者:StackLeader*来源微信公众号:Java技术栈*/@EnableAdminServer@SpringBootApplicationpublicclassApplication{publicstaticvoidmain(String[]args){SpringApplication.run(Application.class,args);}}另外,SpringBootAdminServer还支持集群,这里不再单独演示。有兴趣的可以参考:https://codecentric.github.io...2。搭建SpringBootAdminClient首先,通过上面的教程搭建一个简单的SpringBoot初始项目,端口为:8081。然后添加SpringBootAdminClient需要的依赖:-boot-admin-starter-client.versionorg.springframework.bootspring-boot-starter-actuatororg.springframework.bootspring-boot-starter-security添加如下配置:spring.boot.admin。client.url:http://localhost:8080management.endpoints.web.exposure.include:"*"1)配置SpringBootAdminServer地址;2)SpringBoot现在默认不会暴露所有的端点,所以需要在这里手动释放所有的端点。使所有执行器端点可访问:/***作者:StackManager*来源微信公众号:Java技术栈*/@ConfigurationpublicclassSecurityPermitAllConfigextendsWebSecurityConfigurerAdapter{@Overrideprotectedvoidconfigure(HttpSecurityhttp)throwsException{http.authorizeRequests().anyRequest().permitAll().and().csrf().disable();}}出于测试目的,首先禁用所有安全措施,确保所有端点都可以访问,否则无法监控。在实际项目中自己设置安全。本节教程所有实战源码已上传至本仓库:https://github.com/javastacks...欢迎Star关注学习,SpringBoot实战教程会持续更新将来。3.测试工程搭建配置完成后,依次启动Server和Client。Server必须先启动,因为Client在启动的时候需要向Server注册,否则会注册失败。现在访问Server:http://localhost:8080/就成功了,有点像SpringCloudEureka的页面!立即停止客户端,页面将在几秒后自动刷新:状态变化可以通过邮件或其他方式通知,实时关注您的服务运行状态。有需要的可以参考:https://codecentric.github.io。..4。更详细的解释,点击相应的条目进入,可以看到更详细的内容。Details详细信息菜单显示一些健康和JVM相关的信息:性能性能菜单可以添加显示各种性能指标:环境菜单显示所有Servlet初始参数、系统、环境变量参数等:bean类菜单显示所有Springcontainers里面的bean,是否是单例:配置参数配置属性菜单显示各种SpringBoot配置参数:定时任务定时任务菜单显示所有定时任务:这里没有定时任务,随便加一个on客户端:@Scheduled(cron="0/10****?")publicvoidtask(){log.info("微信公众号Java技术栈正在执行定时任务...");}重启clientandrefreshNextpage:这个只是展示任务信息和状态,无法控制。日志配置日志配置菜单显示所有类的日志级别,可以修改一个类的日志级别:默认情况下,日志文件不能通过executor端点访问,需要logging.file.path或logging.file在客户端设置。name参数配置SpringBoot写入日志文件:logging:file:name:./logs/sba-client.log更多信息请阅读SpringBoot日志实战,关注公众号:Java技术栈,公众号菜单里我都看了一遍,整理了一下。然后重启客户端,刷新下一页:实时显示日志,再也不用登录linux查看一堆命令了。JVMJVM菜单显示当前所有线程栈和堆栈,可以进行下载分析:映射菜单显示所有URL映射:缓存缓存菜单显示所有缓存:不仅用于显示,还用于清除和管理。更多用法请参考官方文档:https://codecentric.github.io...总结SpringBootAdmin用于管理和监控SpringBoot应用。原理是通过客户端暴露的各种/actuator端点。在此基础上进行一些包装和UI展示。SpringBootAdmin并不能完全替代一个专业的监控系统,监控只是在/actuator端点可以实现的,但是对于监控简单的SpringBoot应用还是很有帮助的。本节教程所有实战源码已上传至本仓库:https://github.com/javastacks...欢迎Star关注学习,SpringBoot实战教程会持续更新将来。好了,今天的分享就到这里。稍后栈长会分享更多有趣的Java技术和最新的技术资料。关注公众号Java技术栈第一时间推送。我也会分享主流的SpringBoot面试题和参考资料。答案都整理好了。在公众号后台回复关键词“面试”刷题。版权声明:本文为公众号《Java技术栈》原创。转载、引用本文内容请注明出处。抄袭、洗稿均属侵权投诉,后果自负,并保留追究法律责任的权利。近期热点文章推荐:1.1000+Java面试题及答案(2022最新版)2.厉害了!Java协程来了。..3.SpringBoot2.x教程,太全面了!4.不要用爆破爆满画面,试试装饰者模式,这才是优雅的方式!!5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!