spring boot actuator介紹
- Spring Boot包含許多其他功能,可幫助您在將應(yīng)用程序推送到生產(chǎn)環(huán)境時監(jiān)視和管理應(yīng)用程序。
- 您可以選擇使用HTTP端點或JMX來管理和監(jiān)視應(yīng)用程序。
- 審核,運行狀況和指標(biāo)收集也可以自動應(yīng)用于您的應(yīng)用程序。
總之Spring Boot Actuator就是一款可以幫助你監(jiān)控系統(tǒng)數(shù)據(jù)的框架,其可以監(jiān)控很多很多的系統(tǒng)數(shù)據(jù),它有對應(yīng)用系統(tǒng)的自省和監(jiān)控的集成功能,可以查看應(yīng)用配置的詳細(xì)信息,如:
- 顯示應(yīng)用程序員的Health健康信息
- 顯示Info應(yīng)用信息
- 顯示HTTP Request跟蹤信息
- 顯示當(dāng)前應(yīng)用程序的“Metrics”信息
- 顯示所有的@RequestMapping的路徑信息
- 顯示應(yīng)用程序的各種配置信息
- 顯示你的程序請求的次數(shù) 時間 等各種信息
等等等等…總之很成熟,很強大.
使用介紹:
1. 先在pom.xml中添加依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
對于Gradle,請使用以下聲明:
dependencies { compile("org.springframework.boot:spring-boot-starter-actuator") }
2. 所有的監(jiān)控端點endpoints介紹:
ID | 描述 |
---|---|
auditevents | 公開當(dāng)前應(yīng)用程序的審核事件信息。 |
beans | 顯示應(yīng)用程序中所有Spring bean的完整列表。 |
caches | 暴露可用的緩存。 |
conditions | 顯示在配置和自動配置類上評估的條件以及它們匹配或不匹配的原因。 |
configprops | 顯示所有的整理列表@ConfigurationProperties,查看配置屬性,包括默認(rèn)配置 |
env | 露出Spring的屬性的各種環(huán)境變量,后面可跟/{name}查看具體的值 |
flyway | 顯示已應(yīng)用的任何Flyway數(shù)據(jù)庫遷移。 |
health | 顯示應(yīng)用健康信息,在spring boot2.0以后需要在配置里show-details打開所有健康信息 |
httptrace | 顯示HTTP跟蹤信息(默認(rèn)情況下,最后100個HTTP請求 - 響應(yīng)交換),2.0以后需要手動打開 |
info | 顯示任意應(yīng)用信息,是在配置文件里自己定義的 |
integrationgraph | 顯示Spring Integration圖。 |
loggers | 顯示和修改應(yīng)用程序中記錄器的配置。 |
liquibase | 顯示已應(yīng)用的任何Liquibase數(shù)據(jù)庫遷移。 |
metrics | 顯示當(dāng)前應(yīng)用程序的“指標(biāo)”信息,比如內(nèi)存用量和HTTP請求計數(shù),后可跟/{name}查看具體值 |
mappings | 顯示所有@RequestMapping路徑的整理列表。 |
scheduledtasks | 顯示應(yīng)用程序中的計劃任務(wù)。 |
sessions | 允許從Spring Session支持的會話存儲中檢索和刪除用戶會話。使用Spring Session對響應(yīng)式Web應(yīng)用程序的支持時不可用 |
shutdown | 允許應(yīng)用程序正常關(guān)閉。 |
threaddump | 執(zhí)行線程轉(zhuǎn)儲。 |
如果您的應(yīng)用程序是Web應(yīng)用程序(Spring MVC,Spring WebFlux或Jersey),則可以使用以下附加端點:
ID | 描述 |
---|---|
heapdump | 返回hprof堆轉(zhuǎn)儲文件。 |
jolokia | 通過HTTP公開JMX bean(當(dāng)Jolokia在類路徑上時,不適用于WebFlux)。 |
logfile | 返回日志文件的內(nèi)容(如果已設(shè)置logging.file或logging.path屬性)。支持使用HTTP Range標(biāo)頭檢索部分日志文件的內(nèi)容。 |
prometheus | 以可以由Prometheus服務(wù)器抓取的格式公開指標(biāo)。 |
注意事項:
1.在spring boot 2.0以后,actuator默認(rèn)只開啟了info和health兩個端點,要想使用其他的端點,需要在application.yml中打開:
management: endpoints: web: exposure: include:"*"
注意:
在這里include: “*” ,這個"“雙引號是必須要,在application.properties是不需要”"雙引號的,application.properties中是這樣的:management.endpoints.web.exposure.include=*
3.而且所有的端點都以默認(rèn)的路徑http://localhost:8080/actuator 開始;
如我們查看info端點的信息就是訪問:http://localhost:8080/actuator/info
4.Timestamps時間戳: 端點消耗的所有時間戳(作為查詢參數(shù)或在請求正文中)必須格式化為ISO 8601中指定的偏移日期和時間 。 默認(rèn)的時間戳是跟我們中國的時區(qū)不符合的.
5.actuator的大部分監(jiān)控請求都是以get請求的.只有少數(shù)是post請求.
6.如果想更改默認(rèn)的actuator啟動路徑,可以在application.yml中更改,如我們改成 http://localhost:8080/
#調(diào)整端點的前綴路徑為/ management: endpoints: web: base-path: /
并且health端點的信息默認(rèn)也是顯示的不具體的,請看默認(rèn)的health是顯示的什么:
"UP"就是安全健康的,"DOWN"就是有問題了.
7.在application.yml中開啟所有的Heanth監(jiān)控數(shù)據(jù):
management: endpoint: health: show-details:always #顯示健康具體信息 默認(rèn)不會顯示詳細(xì)信息
我的application.yml是這樣的:
現(xiàn)在你可以開啟服務(wù),試試這些端點的監(jiān)控數(shù)據(jù),因為我已經(jīng)把監(jiān)控的路徑改成了 http://localhost:8088 了.所以可以直接在后面跟端點的名稱,如果你沒有更改路徑,默認(rèn)的啟動路徑是 http://localhost:8088/actuator/ ,然后后面才跟你要監(jiān)控的端點名稱:
http://localhost:8088/metrics
http://localhost:8088/mappings
端點Metrics監(jiān)控的數(shù)據(jù)結(jié)果如下
這些數(shù)據(jù)都是可以監(jiān)控到的,“磁盤使用率”,這個是我自定義的metrics端點信息,在下面的文章中我會教大家怎么自定義你想要的端點,如果你想看更具體的請在路徑后面加上你要看的數(shù)據(jù),/{name},如:
http://localhost:8088/metrics/jvm.memory.used
自定義info信息:
在pom.xml中添加依賴,可以訪問到pom.xml的信息,如果不加這個,你在application.yml中定義的info信息是不會獲取到的:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <configuration> <delimiters> <delimiter>@</delimiter> </delimiters> <useDefaultDelimiters>false</useDefaultDelimiters> </configuration> </plugin>
在application.yml中這樣配置:
#自定義info端點查看應(yīng)用相關(guān)的信息 info: encoding: @project.build.sourceEncoding@ traget: @java.version@ name: @project.name@ description: @project.description@
訪問 http://localhost:8088/info ,運行結(jié)果為:
但是如果你只想打開某個端點,我們是這樣的配置的,同樣式在application.yml中:
management: endpoint: 端點名稱: enabled: true
使用Spring Security來保證Actuator Endpoints安全:
在pom.xml中添加依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
在application.yml中這樣配置:這里是在spring boot2.0以后的版本中,在2.0之前不是這樣的,稍微有差別:
# http安全機制 security: user: name: li password: 123 roles: ADMIN
然后啟動你的服務(wù),你會發(fā)現(xiàn)有個登錄頁面,需要你輸入我們配置的賬號密碼:
需要注意,spring boot2.0以后和之前的Security配置有所不同,我有一篇文章提到了!!!
自定義端點:
首先自定義健康監(jiān)測的端點Health:
自定義健康監(jiān)測的端點有兩種方式:
1.繼承AbstractHealthIndicator類2. 實現(xiàn)HealthIndicator接口。
自定義端點的文章 請看第二章節(jié) 謝謝支持
到此這篇關(guān)于spring boot actuator監(jiān)控超詳細(xì)教程的文章就介紹到這了,更多相關(guān)spring boot actuator監(jiān)控內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/weixin_43353498/article/details/89226101