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