【SpringBoot專題】監控健康狀況
前言
ofollow,noindex">《【SpringBoot專題】快速體驗》
《【SpringBoot專題】Java平臺下日誌的那些事》
想一想,我們以前是如何監控一個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