五分鐘解鎖springboot admin監(jiān)控新技巧
最近這一個(gè)月由于項(xiàng)目進(jìn)度緊張,將近一個(gè)月沒(méi)有動(dòng)靜。分享一下最近體會(huì)的springboot監(jiān)控的一些心得體會(huì),供一些規(guī)模不是很大的團(tuán)隊(duì)做一些監(jiān)控。
適用場(chǎng)景:
1、項(xiàng)目規(guī)模不大
2、用戶量不是很大、并發(fā)要求不強(qiáng)
3、無(wú)專門運(yùn)維力量
4、精致的團(tuán)隊(duì)規(guī)模
對(duì)于一些常規(guī)的項(xiàng)目,或者企業(yè)職責(zé)分工不是非常明確的單位來(lái)說(shuō)。往往一個(gè)系統(tǒng)從需求到設(shè)計(jì),開(kāi)發(fā),測(cè)試到最終上線,運(yùn)維。往往80%的任務(wù)由開(kāi)發(fā)團(tuán)隊(duì)來(lái)完成。由此,開(kāi)發(fā)人員除了要實(shí)現(xiàn)系統(tǒng)的功能,還要為客戶進(jìn)行問(wèn)題咨詢答疑以及生產(chǎn)問(wèn)題解決。
試想,一個(gè)應(yīng)用上線后,沒(méi)有任何監(jiān)控措施。跟開(kāi)著一輛沒(méi)有任何儀表盤的汽車一樣,這樣上路,任何人都沒(méi)有安全感。如何在極簡(jiǎn)和追求效率上做平衡是一件特別值得思考的事情。
本文不會(huì)講如何搭建企業(yè)的運(yùn)維監(jiān)控系統(tǒng),有興趣的可以去找找成熟的比如Zabbix、Prometheus,甚至比較簡(jiǎn)單的Wgcloud都能滿足一定的需求,不在此贅述。本文講解如何使用Springboot admin對(duì)spring boot項(xiàng)目進(jìn)行應(yīng)用監(jiān)控。
一、Springboot admin 是啥?
Spring Boot Admin是一個(gè)開(kāi)源社區(qū)項(xiàng)目,用于管理和監(jiān)控SpringBoot應(yīng)用程序。應(yīng)用程序作為Spring Boot Admin Client向?yàn)镾pring Boot Admin Server注冊(cè)(通過(guò)HTTP)或使用SpringCloud注冊(cè)中心(例如Eureka,Consul)發(fā)現(xiàn)。常見(jiàn)的功能或者監(jiān)控如下:
1、顯示健康狀況
2、顯示構(gòu)建信息編號(hào)
3、關(guān)注并下載日志文件
4、查看jvm系統(tǒng)和環(huán)境屬性
5、輕松的日志級(jí)管理
6、與JMX-beans交互
7、查看線程轉(zhuǎn)儲(chǔ)
8、查看http跟蹤
9、狀態(tài)變更通知(通過(guò)電子郵件,Slack,Hipchat,…)
10、狀態(tài)更改的事件日志(非持久性)
......
二、關(guān)鍵集成介紹
1、pom.xml 聲明
<properties>
<java.version>1.8</java.version>
<spring-boot-admin.version>2.3.1</spring-boot-admin.version>
</properties>
2、spring-boot-admin 引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>${spring-boot-admin.version}</version>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>${spring-boot-admin.version}</version>
</dependency>
3、server配置
server:
# 服務(wù)器的HTTP端口,默認(rèn)為8080
port: 8085
# 日志配置
logging:
# 已存在日志xml配置文件后,path與name 不生效
config: classpath:logback.xml
spring:
boot:
admin:
# Spring Boot Admin Server 服務(wù)端的相關(guān)配置
context-path: /admin # 配置 Spring
4、client配置
spring:
application:
name: springboot-admin-monitor
boot:
admin:
# Spring Boot Admin Client 客戶端的相關(guān)配置
client:
# 設(shè)置 Spring Boot Admin Server 地址
url: http://localhost:${server.port}${spring.boot.admin.context-path}
instance:
prefer-ip: true # 注冊(cè)實(shí)例時(shí),優(yōu)先使用 IP
# Actuator 監(jiān)控端點(diǎn)的配置項(xiàng)
management:
endpoints:
web:
# Actuator 提供的 API 接口的根目錄。默認(rèn)為 /actuator
base-path: /actuator
exposure:
# 需要開(kāi)放的端點(diǎn)。默認(rèn)值只打開(kāi) health 和 info 兩個(gè)端點(diǎn)。通過(guò)設(shè)置 * ,可以開(kāi)放所有端點(diǎn)。
include: '*'
# 已存在日志xml配置文件后,需要配置該項(xiàng)
endpoint:
logfile:
external-file: ./logs/sys-console.log
三、相關(guān)監(jiān)控實(shí)例
1、監(jiān)控首頁(yè)

2、應(yīng)用監(jiān)控信息查看

3、實(shí)時(shí)日志輸出

4、動(dòng)態(tài)調(diào)節(jié)日志級(jí)別

5、jvm

四、總結(jié)
以上介紹了在生產(chǎn)中如何采用springboot admin來(lái)監(jiān)控你的應(yīng)用,其實(shí)admin的監(jiān)控功能遠(yuǎn)不止上文介紹的,還可以集成郵件通知,有外網(wǎng)使用釘釘?shù)?,也可以進(jìn)行相應(yīng)集成,比如在應(yīng)用下線的時(shí)候可以進(jìn)行相應(yīng)的通知。個(gè)人比較喜歡的功能是日志web可視化,開(kāi)發(fā)人員再也不需要通過(guò)客戶端工具連到服務(wù)器上去看日志,提高了效率,同時(shí)可以動(dòng)態(tài)調(diào)整日志的級(jí)別,也能高效管理日志輸出。另外jvm的管理也能隨時(shí)管理,提高定位問(wèn)題的效率。希望對(duì)你有所幫助。
本文參考代碼gitee鏈接:https://gitee.com/JavaLionLi/springboot-admin-demo(有幫助的話,可以給作者點(diǎn)個(gè)star)
以上就是五分鐘解鎖springboot admin監(jiān)控新技巧的詳細(xì)內(nèi)容,更多關(guān)于springboot admin監(jiān)控的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
springboot全局配置文件與多環(huán)境配置的全過(guò)程
SpringBoot項(xiàng)目在多環(huán)境配置上表現(xiàn)的非常優(yōu)秀,只需要非常簡(jiǎn)單的操作就可以完成配置,下面這篇文章主要給大家介紹了關(guān)于springboot全局配置文件與多環(huán)境配置的相關(guān)資料,需要的朋友可以參考下2021-12-12
java可變參數(shù)(不定向參數(shù))的作用與實(shí)例
這篇文章主要給大家介紹了關(guān)于java可變參數(shù)(不定向參數(shù))的作用與實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
淺析IDEA如何正確配置Gradle? GRADLE_USER_HOME 和 Gradle user home的區(qū)別
這篇文章主要介紹了IDEA如何正確配置Gradle? GRADLE_USER_HOME 和 Gradle user home的區(qū)別,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
如何去除Java中List集合中的重復(fù)數(shù)據(jù)
這篇文章主要介紹了Java中List集合去除重復(fù)數(shù)據(jù)的方法,對(duì)大家的工作或?qū)W習(xí)有一定價(jià)值,有需求的朋友可以參考下2020-05-05
PowerJob的IdGenerateService工作流程源碼解讀
這篇文章主要為大家介紹了PowerJob的IdGenerateService工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
JAVA匿名內(nèi)部類語(yǔ)法分析及實(shí)例詳解
這篇文章主要介紹了JAVA匿名內(nèi)部類語(yǔ)法分析及實(shí)例詳解,匿名內(nèi)部類可以使你的代碼更加簡(jiǎn)潔,它與局部類很相似,不同的是它沒(méi)有類名,如果某個(gè)局部類你只需要用一次,那么你就可以使用匿名內(nèi)部類。對(duì)此感興趣的可以了解一下2020-07-07
Arrays.sort如何實(shí)現(xiàn)降序排序
這篇文章主要介紹了Arrays.sort如何實(shí)現(xiàn)降序排序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11

