前言
想一想,我们以前是如何监控一个Java应用的监控状况的?一般而言,我们会在Linux服务器上通过一些命令,比如通过jstat来统计堆内存的使用情况/垃圾回收的情况,通过jstack分析Java线程状态等。那么对于SpringBoot而言,在监控应用健康状况上,提供了更佳简便以及可视化的工具给我们使用,本文就给大家分享这方面的知识~
监控插件:actuator
引入actuator插件非常简单,只需要在项目中依赖(注意和springboot的版本要一致,否则可能报错):
compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: '1.5.15.RELEASE'
然后在application.properties中加入配置(不需要认证身份):
management.security.enabled=false
加入依赖后,我们启动下项目看一下有哪些变化:
Spring Boot Admin:可视化后台管理系统
对于spring actuator而言,最大的缺点在于是以json形式来进行展示,为了更好的进行监控显示,我们来介绍一个更佳方便的工具:springbootadmin。
利用springbootadmin进行监控的架构图如下:
通俗点,就是我们如果有n个springboot业务系统需要监控的话,那么需要一个额外的springbootadmin应用来进行监控这些client,client和server之间需要做一点配置即可。
我们先来看一下sever端,即springbootadminserver的配置情况:
加入依赖
compile group: 'de.codecentric', name: 'spring-boot-admin-server', version: '1.5.5'
compile group: 'de.codecentric', name: 'spring-boot-admin-server-ui', version: '1.5.5'
@EnableAdminServer注解
启动springbootadmin应用:
接下来,配置client:
加入依赖
compilegroup:'de.codecentric',name:'spring-boot-admin-starter-client',version:'1.5.5'
加入配置
启动client后,进入springbootadminserver监控界面,你会发现:
在监控界面上,你会可视化的了解到:环境变量,线程的状态信息,类加载信息(包括依赖的第三方jar),http请求的统计信息(次数和时间),gc的次数和时间统计信息,堆/非堆内存的使用情况等等。
总结
通过本文,你应该能了解到springboot在监控方面为开发人员准备了一套解决方案,通过可视化的工具,使得监控变得轻松~
中秋快乐~
create by zhangfengzhe
2018.09.24