spring boot actuator監(jiān)控超詳細(xì)教程
spring boot actuator介紹
- Spring Boot包含許多其他功能,可幫助您在將應(yīng)用程序推送到生產(chǎn)環(huán)境時(shí)監(jiān)視和管理應(yīng)用程序。
- 您可以選擇使用HTTP端點(diǎn)或JMX來管理和監(jiān)視應(yīng)用程序。
- 審核,運(yùn)行狀況和指標(biāo)收集也可以自動(dòng)應(yīng)用于您的應(yīng)用程序。
總之Spring Boot Actuator就是一款可以幫助你監(jiān)控系統(tǒng)數(shù)據(jù)的框架,其可以監(jiān)控很多很多的系統(tǒng)數(shù)據(jù),它有對(duì)應(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)用程序的各種配置信息
- 顯示你的程序請(qǐng)求的次數(shù) 時(shí)間 等各種信息
等等等等…總之很成熟,很強(qiáng)大.
使用介紹:
1. 先在pom.xml中添加依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
對(duì)于Gradle,請(qǐng)使用以下聲明:
dependencies { compile("org.springframework.boot:spring-boot-starter-actuator") }
2. 所有的監(jiān)控端點(diǎn)endpoints介紹:
ID | 描述 |
---|---|
auditevents | 公開當(dāng)前應(yīng)用程序的審核事件信息。 |
beans | 顯示應(yīng)用程序中所有Spring bean的完整列表。 |
caches | 暴露可用的緩存。 |
conditions | 顯示在配置和自動(dòng)配置類上評(píng)估的條件以及它們匹配或不匹配的原因。 |
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個(gè)HTTP請(qǐng)求 - 響應(yīng)交換),2.0以后需要手動(dòng)打開 |
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請(qǐng)求計(jì)數(shù),后可跟/{name}查看具體值 |
mappings | 顯示所有@RequestMapping路徑的整理列表。 |
scheduledtasks | 顯示應(yīng)用程序中的計(jì)劃任務(wù)。 |
sessions | 允許從Spring Session支持的會(huì)話存儲(chǔ)中檢索和刪除用戶會(huì)話。使用Spring Session對(duì)響應(yīng)式Web應(yīng)用程序的支持時(shí)不可用 |
shutdown | 允許應(yīng)用程序正常關(guān)閉。 |
threaddump | 執(zhí)行線程轉(zhuǎn)儲(chǔ)。 |
如果您的應(yīng)用程序是Web應(yīng)用程序(Spring MVC,Spring WebFlux或Jersey),則可以使用以下附加端點(diǎn):
ID | 描述 |
---|---|
heapdump | 返回hprof堆轉(zhuǎn)儲(chǔ)文件。 |
jolokia | 通過HTTP公開JMX bean(當(dāng)Jolokia在類路徑上時(shí),不適用于WebFlux)。 |
logfile | 返回日志文件的內(nèi)容(如果已設(shè)置logging.file或logging.path屬性)。支持使用HTTP Range標(biāo)頭檢索部分日志文件的內(nèi)容。 |
prometheus | 以可以由Prometheus服務(wù)器抓取的格式公開指標(biāo)。 |
注意事項(xiàng):
1.在spring boot 2.0以后,actuator默認(rèn)只開啟了info和health兩個(gè)端點(diǎn),要想使用其他的端點(diǎn),需要在application.yml中打開:
management: endpoints: web: exposure: include:"*"
注意:
在這里include: “*” ,這個(gè)"“雙引號(hào)是必須要,在application.properties是不需要”"雙引號(hào)的,application.properties中是這樣的:management.endpoints.web.exposure.include=*
3.而且所有的端點(diǎn)都以默認(rèn)的路徑http://localhost:8080/actuator 開始;
如我們查看info端點(diǎn)的信息就是訪問:http://localhost:8080/actuator/info
4.Timestamps時(shí)間戳: 端點(diǎn)消耗的所有時(shí)間戳(作為查詢參數(shù)或在請(qǐng)求正文中)必須格式化為ISO 8601中指定的偏移日期和時(shí)間 。 默認(rèn)的時(shí)間戳是跟我們中國的時(shí)區(qū)不符合的.
5.actuator的大部分監(jiān)控請(qǐng)求都是以get請(qǐng)求的.只有少數(shù)是post請(qǐng)求.
6.如果想更改默認(rèn)的actuator啟動(dòng)路徑,可以在application.yml中更改,如我們改成 http://localhost:8080/
#調(diào)整端點(diǎn)的前綴路徑為/ management: endpoints: web: base-path: /
并且health端點(diǎn)的信息默認(rèn)也是顯示的不具體的,請(qǐng)看默認(rèn)的health是顯示的什么:
"UP"就是安全健康的,"DOWN"就是有問題了.
7.在application.yml中開啟所有的Heanth監(jiān)控?cái)?shù)據(jù):
management: endpoint: health: show-details:always #顯示健康具體信息 默認(rèn)不會(huì)顯示詳細(xì)信息
我的application.yml是這樣的:
現(xiàn)在你可以開啟服務(wù),試試這些端點(diǎn)的監(jiān)控?cái)?shù)據(jù),因?yàn)槲乙呀?jīng)把監(jiān)控的路徑改成了 http://localhost:8088 了.所以可以直接在后面跟端點(diǎn)的名稱,如果你沒有更改路徑,默認(rèn)的啟動(dòng)路徑是 http://localhost:8088/actuator/ ,然后后面才跟你要監(jiān)控的端點(diǎn)名稱:
http://localhost:8088/metrics
http://localhost:8088/mappings
端點(diǎn)Metrics監(jiān)控的數(shù)據(jù)結(jié)果如下
這些數(shù)據(jù)都是可以監(jiān)控到的,“磁盤使用率”,這個(gè)是我自定義的metrics端點(diǎn)信息,在下面的文章中我會(huì)教大家怎么自定義你想要的端點(diǎn),如果你想看更具體的請(qǐng)?jiān)诼窂胶竺婕由夏阋吹臄?shù)據(jù),/{name},如:
http://localhost:8088/metrics/jvm.memory.used
自定義info信息:
在pom.xml中添加依賴,可以訪問到pom.xml的信息,如果不加這個(gè),你在application.yml中定義的info信息是不會(huì)獲取到的:
<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端點(diǎn)查看應(yīng)用相關(guān)的信息 info: encoding: @project.build.sourceEncoding@ traget: @java.version@ name: @project.name@ description: @project.description@
訪問 http://localhost:8088/info ,運(yùn)行結(jié)果為:
但是如果你只想打開某個(gè)端點(diǎn),我們是這樣的配置的,同樣式在application.yml中:
management: endpoint: 端點(diǎn)名稱: 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安全機(jī)制 security: user: name: li password: 123 roles: ADMIN
然后啟動(dòng)你的服務(wù),你會(huì)發(fā)現(xiàn)有個(gè)登錄頁面,需要你輸入我們配置的賬號(hào)密碼:
需要注意,spring boot2.0以后和之前的Security配置有所不同,我有一篇文章提到了!!!
自定義端點(diǎn):
首先自定義健康監(jiān)測的端點(diǎn)Health:
自定義健康監(jiān)測的端點(diǎn)有兩種方式:
1.繼承AbstractHealthIndicator類2. 實(shí)現(xiàn)HealthIndicator接口。
自定義端點(diǎn)的文章 請(qǐng)看第二章節(jié) 謝謝支持
到此這篇關(guān)于spring boot actuator監(jiān)控超詳細(xì)教程的文章就介紹到這了,更多相關(guān)spring boot actuator監(jiān)控內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JAVA實(shí)現(xiàn)對(duì)阿里云DNS的解析管理
本文主要介紹了JAVA實(shí)現(xiàn)對(duì)阿里云DNS的解析管理,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01詳解使用Spring的restTemplete進(jìn)行Http請(qǐng)求
本篇文章主要介紹了詳解使用Spring的restTemplete進(jìn)行Http請(qǐng)求,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06SpringBoot打包發(fā)布到linux上(centos 7)的步驟
這篇文章主要介紹了SpringBoot打包發(fā)布到linux上(centos 7)的步驟,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下2020-12-12詳解Spring bean的注解注入之@Autowired的原理及使用
之前講過bean注入是什么,也使用了xml的配置文件進(jìn)行bean注入,這也是Spring的最原始的注入方式(xml注入).本文主要講解的注解有以下幾個(gè):@Autowired、 @Service、@Repository、@Controller 、@Component、@Bean、@Configuration、@Resource ,需要的朋友可以參考下2021-06-06RabbitMQ實(shí)現(xiàn)Work Queue工作隊(duì)列的示例詳解
工作隊(duì)列(又稱任務(wù)隊(duì)列)的主要思想是避免立即執(zhí)行資源密集型任務(wù),而不得不等待它完成。本篇文章將記錄和分享RabbitMQ工作隊(duì)列相關(guān)的知識(shí)點(diǎn),希望對(duì)大家有所幫助2023-01-01