一、 本文大綱
Spring Boot Actuator簡介
Actuator開啟與配置
常用監控端點說明
二、Spring Boot Actuator簡介
Spring Boot作為構建微服務節點的方案,一定要提供全面而且細緻的監控指標,使微服務更易於管理!微服務不同於單體應用,微服務的每個服務節點都單獨部署,獨立運行,大型的微服務項目甚至有成百上千個服務節點。這就為我們進行系統監控與運維提出了挑戰。為了應對這個挑戰,其中最重要的工作之一就是:微服務節點能夠合理的暴露服務的相關監控指標,用以對服務進行健康檢查、監控管理,從而進行合理的流量規劃與安排系統運維工作!
Spring Boot Actuator 可以監控我們的應用程式,收集流量和資料庫狀態、健康狀態等監控指標。在生產環境中,我們可以方便的通過HTTP請求獲取應用的狀態信息,以JSON格式數據響應。
Spring Boot Actuator監控端點的分類
靜態配置類:主要是一些靜態配置信息,比如: Spring Bean 加載信息、yml 或properties配置信息、環境變量信息、請求接口關係映射信息等;
動態指標類:主要用於展現程序運行期狀態,例如內存堆棧信息、請求鏈信息、健康指標信息等;
操作控制類:主要是shutdown功能,用戶可以遠程發送HTTP請求,從而關閉監控功能。
三、Actuator開啟與配置
在Spring Boot2.x項目中開啟Actuator非常簡單,只需要引入如下的mavn坐標即可。
Spring Boot Actuator啟用之後默認開放了兩個端點的訪問:
/actuator/health用以監控應用狀態。返回值是應用狀態信息,包含四種狀態DOWN(應用不正常), OUT_OF_SERVICE(服務不可用),UP(狀態正常), UNKNOWN(狀態未知)。如果服務狀態正常,我們訪問http:/lhost:port/actuator/health得到如下響應信息:
/actuator/info 用來響應應用相關信息,默認為空。可以根據我們自己的需要,向服務調用者暴露相關信息。如下所示,配置屬性可以隨意起名,但都要掛在info下面:
如果我們希望開放更多的監控端點給服務調用者,需要配置:開放部分監控端點,端點名稱用逗號分隔
management.endpoints.web.exposure.exclude=beans,env
開放所有監控端點:
management.endpoints.web.exposure.include=*
如果您使用的是yml配置文件,而不是properties配置文件。注意:星號在YAML配置文件中中有特殊的含義,所以使用YAML配置文件一定要加引號,如下所示:
三、常用監控端點說明
注意下圖中的服務啟用,不等於對外開放訪問。對外開放訪問的服務端點一定要先開啟服務。如果服務不是默認開啟的,使用如下方式開啟:
# shutdown是服務端點名稱,可以替換management.endpoint.shutdown.enabled=true
如果Spring Boot web應用(WebMVC, WebFlux, Jersey),還可以使用如下端點:
寫在最後
通過搜-suo-查詢「字母哥博客」,更多精品知識等待你!
本號只做持續的知識輸出,希望您能關注、評論、轉發!您的支持是我不竭的創作動力!讓知識產生價值、讓程式設計師改變世界!