【SpringBoot专题】监控健康状况

前言

《【SpringBoot专题】快速体验》

《【SpringBoot专题】多环境配置及swagger》

《【SpringBoot专题】Java平台下日志的那些事》

《【SpringBoot专题】统一异常处理和统一数据返回》

想一想,我们以前是如何监控一个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

加入依赖后,我们启动下项目看一下有哪些变化:

监控地址
监控应用的整体状态以及磁盘状况
以json串的形式描述环境变量
线程dump文件


Spring Boot Admin:可视化后台管理系统

对于spring actuator而言,最大的缺点在于是以json形式来进行展示,为了更好的进行监控显示,我们来介绍一个更佳方便的工具:springbootadmin。

利用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注解

@EnableAdminServer

启动springbootadmin应用:

目前client监控信息为空

接下来,配置client

加入依赖

compilegroup:'de.codecentric',name:'spring-boot-admin-starter-client',version:'1.5.5'

加入配置

指明springbootadminserver配置

启动client后,进入springbootadminserver监控界面,你会发现:

监控界面列表


client监控情况

在监控界面上,你会可视化的了解到:环境变量,线程的状态信息,类加载信息(包括依赖的第三方jar),http请求的统计信息(次数和时间),gc的次数和时间统计信息,堆/非堆内存的使用情况等等。


总结

通过本文,你应该能了解到springboot在监控方面为开发人员准备了一套解决方案,通过可视化的工具,使得监控变得轻松~

中秋快乐~

create by zhangfengzhe

2018.09.24

推荐阅读更多精彩内容