前言
《【SpringBoot專題】多環(huán)境配置及swagger》
《【SpringBoot專題】Java平臺(tái)下日志的那些事》
《【SpringBoot專題】統(tǒng)一異常處理和統(tǒng)一數(shù)據(jù)返回》
想一想,我們以前是如何監(jiān)控一個(gè)Java應(yīng)用的監(jiān)控狀況的?一般而言,我們會(huì)在Linux服務(wù)器上通過(guò)一些命令,比如通過(guò)jstat來(lái)統(tǒng)計(jì)堆內(nèi)存的使用情況/垃圾回收的情況,通過(guò)jstack分析Java線程狀態(tài)等。那么對(duì)于SpringBoot而言,在監(jiān)控應(yīng)用健康狀況上,提供了更佳簡(jiǎn)便以及可視化的工具給我們使用,本文就給大家分享這方面的知識(shí)~
監(jiān)控插件:actuator
引入actuator插件非常簡(jiǎn)單,只需要在項(xiàng)目中依賴(注意和springboot的版本要一致,否則可能報(bào)錯(cuò)):
compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: '1.5.15.RELEASE'
然后在application.properties中加入配置(不需要認(rèn)證身份):
management.security.enabled=false
加入依賴后,我們啟動(dòng)下項(xiàng)目看一下有哪些變化:




Spring Boot Admin:可視化后臺(tái)管理系統(tǒng)
對(duì)于spring?actuator而言,最大的缺點(diǎn)在于是以json形式來(lái)進(jìn)行展示,為了更好的進(jìn)行監(jiān)控顯示,我們來(lái)介紹一個(gè)更佳方便的工具:springbootadmin。
利用springbootadmin進(jìn)行監(jiān)控的架構(gòu)圖如下:

通俗點(diǎn),就是我們?nèi)绻衝個(gè)springboot業(yè)務(wù)系統(tǒng)需要監(jiān)控的話,那么需要一個(gè)額外的springbootadmin應(yīng)用來(lái)進(jìn)行監(jiān)控這些client,client和server之間需要做一點(diǎn)配置即可。
我們先來(lái)看一下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注解

啟動(dòng)springbootadmin應(yīng)用:

接下來(lái),配置client:
加入依賴
compilegroup:'de.codecentric',name:'spring-boot-admin-starter-client',version:'1.5.5'
加入配置

啟動(dòng)client后,進(jìn)入springbootadminserver監(jiān)控界面,你會(huì)發(fā)現(xiàn):


在監(jiān)控界面上,你會(huì)可視化的了解到:環(huán)境變量,線程的狀態(tài)信息,類加載信息(包括依賴的第三方j(luò)ar),http請(qǐng)求的統(tǒng)計(jì)信息(次數(shù)和時(shí)間),gc的次數(shù)和時(shí)間統(tǒng)計(jì)信息,堆/非堆內(nèi)存的使用情況等等。
總結(jié)
通過(guò)本文,你應(yīng)該能了解到springboot在監(jiān)控方面為開(kāi)發(fā)人員準(zhǔn)備了一套解決方案,通過(guò)可視化的工具,使得監(jiān)控變得輕松~
中秋快樂(lè)~
create by zhangfengzhe
2018.09.24