三步為你的Springboot應(yīng)用集成Actuator,實(shí)現(xiàn)應(yīng)用監(jiān)控
前言
有時(shí)候我們想要實(shí)時(shí)監(jiān)控我們的應(yīng)用程序的運(yùn)行狀態(tài),比如實(shí)時(shí)顯示一些指標(biāo)數(shù)據(jù),觀察每時(shí)每刻訪問的流量,或者是我們數(shù)據(jù)庫的訪問狀態(tài)等等。這時(shí)候就需要Actuator了。
使用Actuator的好處是,我們可以直接使用這個(gè)生產(chǎn)級(jí)別的工具,而不需要自己去實(shí)現(xiàn)這些東西。Actuator可以自動(dòng)幫我們自動(dòng)暴露出這些信息,使用HTTP或者是JMX beans的方式實(shí)現(xiàn)。最主要的是我們直接在properties文件中配置即可。
下面看看如何實(shí)現(xiàn):
代碼實(shí)現(xiàn)
創(chuàng)建一個(gè)springboot項(xiàng)目,我使用的是Springboot2.4的版本。
第一步:添加依賴
- <!--監(jiān)控依賴-->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- </dependency>
依賴就這么簡單。
第二步:配置
- #改變應(yīng)用程序的端口
- server.port=8081
- #1、actuator默認(rèn)只開啟了info和health兩個(gè)端點(diǎn)
- #以下配置可以開啟所有的端點(diǎn):
- management.endpoints.web.exposure.include= *
- #2、開啟健康監(jiān)控?cái)?shù)據(jù)
- management.endpoint.health.show-details=always
- #3、啟用httptrace端點(diǎn)
- management.endpoint.httptrace.enabled=true
- #4、每次都要加個(gè)actuator前綴太麻煩,改變端點(diǎn)前綴路徑
- management.endpoints.web.base-path= /
這么增加了幾個(gè)配置。
現(xiàn)在我們直接訪問就可以了。
第三步:直接訪問
由于在前面我們配置了自己的base-path。所以不需要增加actuator的前綴?,F(xiàn)在訪問:
http://localhost:8081/mappings
我們?cè)L問就會(huì)出現(xiàn)這樣的畫面,看著有點(diǎn)難看,不過有了這些信息,還可以格式化顯示,目前也有很多開源的項(xiàng)目可以自動(dòng)實(shí)現(xiàn)。
其他的端口如下:可以把上面的地址的mappings改變一下就可以了。
EndPoints | 描述 |
---|---|
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)用健康信息,2.0以后需要在配置里show-details打開k開關(guān) |
httptrace | 顯示HTTP跟蹤信息,2.0以后需要手動(dòng)打開 |
info | 顯示任意應(yīng)用信息,是在配置文件里自己定義的 |
integrationgraph | 顯示Spring Integration圖。 |
loggers | 顯示和修改應(yīng)用程序中記錄器的配置。 |
liquibase | 顯示已應(yīng)用的任何Liquibase數(shù)據(jù)庫遷移。 |
metrics | 顯示指標(biāo)信息,比如內(nèi)存用量和HTTP請(qǐng)求計(jì)數(shù),后可跟/{name}查看具體值 |
mappings | 顯示所有@RequestMapping路徑的整理列表。 |
scheduledtasks | 顯示應(yīng)用程序中的計(jì)劃任務(wù)。 |
sessions | 允許從Spring Session支持的會(huì)話存儲(chǔ)中檢索和刪除用戶會(huì)話。 |
shutdown | 允許應(yīng)用程序正常關(guān)閉。 |
threaddump | 執(zhí)行線程轉(zhuǎn)儲(chǔ)。 |
OK?;旧鲜沁@樣。
為Actuator添加安全驗(yàn)證
比如我們的Actuator的端口不想被無關(guān)人員看到,于是就可以配置Spring security添加登錄。方式如下:
第一步:添加依賴
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-security</artifactId>
- </dependency>
第二步:在properties文件中添加配置
- #5、端口信息被別人看到了咋辦,可以添加個(gè)security
- spring.security.user.name= fdd
- spring.security.user.password= 123456
- spring.security.user.roles= ADMIN
這里設(shè)置的用戶面是fdd,密碼123456,角色是ADMIN。
第三步:重新訪問上面的端口地址
重新訪問相關(guān)端口地址,就會(huì)被重定向到登錄頁面。使用配置好的用戶名密碼登錄即可。
OK,這個(gè)比較簡單。
本文轉(zhuǎn)載自微信公眾號(hào)「愚公要移山」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系愚公要移山公眾號(hào)。