使用Prometheus+Grafana的方法監(jiān)控Springboot應(yīng)用教程詳解
1 簡(jiǎn)介
項(xiàng)目越做越發(fā)覺(jué)得,任何一個(gè)系統(tǒng)上線,運(yùn)維監(jiān)控都太重要了。關(guān)于Springboot微服務(wù)的監(jiān)控,之前寫(xiě)過(guò)【Springboot】用Springboot Admin監(jiān)控你的微服務(wù)應(yīng)用,這個(gè)方案可以實(shí)時(shí)監(jiān)控并提供告警提醒功能,但不能記錄歷史數(shù)據(jù),無(wú)法查看過(guò)去1小時(shí)或過(guò)去1天等運(yùn)維情況。本文介紹Prometheus + Grafana的方法監(jiān)控Springboot 2.X,實(shí)現(xiàn)美觀漂亮的數(shù)據(jù)可視化。
2 Prometheus
Prometheus是一套優(yōu)秀的開(kāi)源的監(jiān)控、報(bào)警和時(shí)間序列數(shù)據(jù)庫(kù)組合系統(tǒng),在現(xiàn)在最常見(jiàn)的Kubernetes
容器管理系統(tǒng)中,通常會(huì)搭配Prometheus
進(jìn)行監(jiān)控。
2.1 引入到Springboot
將Prometheus
引入依賴如下:
<dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency>
對(duì)于Springboot,要開(kāi)啟Actuator
,并打開(kāi)對(duì)應(yīng)的Endpoint
:
management.endpoints.web.exposure.include=* # 或者 management.endpoints.web.exposure.include=prometheus
啟動(dòng)Springboot
后,可以通過(guò)下面URL看能不能正確獲取到監(jiān)控?cái)?shù)據(jù):
localhost:8080/actuator/prometheus
獲取數(shù)據(jù)成功,說(shuō)明Springboot
能正常提供監(jiān)控?cái)?shù)據(jù)。
2.2 Docker方式使用
為了方便,使用Docker
啟動(dòng)Prometheus
:
# 拉取docker鏡像 docker pull prom/prometheus
準(zhǔn)備配置文件prometheus.yml
:
scrape_configs: # 可隨意指定 - job_name: 'spring' # 多久采集一次數(shù)據(jù) scrape_interval: 15s # 采集時(shí)的超時(shí)時(shí)間 scrape_timeout: 10s # 采集的路徑 metrics_path: '/actuator/prometheus' # 采集服務(wù)的地址,設(shè)置成Springboot應(yīng)用所在服務(wù)器的具體地址 static_configs: - targets: ['hostname:9000','hostname:8080']
啟動(dòng)docker實(shí)例:
# 端口為9090,指定配置文件
docker run -d -p 9090:9090 -v ~/temp/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml
2.3 測(cè)試與查看
成功啟動(dòng)后,就可以打開(kāi)網(wǎng)頁(yè)查看了,并且能圖形化展示,URL為http://localhost:9090/。
如上圖所示,打開(kāi)網(wǎng)頁(yè)后,隨便選取一個(gè)對(duì)應(yīng)的監(jiān)控指標(biāo)與參數(shù),點(diǎn)擊Execute
就可以查看了。
3 Grafana
Grafana
是一個(gè)開(kāi)源的度量分析與可視化套件,純JavaScript
開(kāi)發(fā)的前端工具,通過(guò)訪問(wèn)庫(kù)(如InfluxDB
),展示自定義報(bào)表、顯示圖表等。它的UI十分靈活,有豐富的插件和模板,功能強(qiáng)大。一般用在時(shí)序數(shù)據(jù)的監(jiān)控方面。
3.1 Docker安裝與啟動(dòng)
# 拉取鏡像 docker pull grafana/grafana # 運(yùn)行實(shí)例 docker run -d -p 3000:3000 grafana/grafana
啟動(dòng)成功后,訪問(wèn)http://localhost:3000 檢查是否成功,初始管理員賬號(hào)密碼為admin/admin
。
3.2 配置數(shù)據(jù)源
Grafana
展示數(shù)據(jù),則需要配置對(duì)應(yīng)的數(shù)據(jù)源,本文中配置之前安裝啟用的Prometheus
數(shù)據(jù)源,具體配置如下圖所示:
需要注意的是Access
要選Browser
模式,否則無(wú)法正常獲取數(shù)據(jù)。配置完成后,點(diǎn)擊Save & Test
即可。
3.3 模板套用
能夠獲取數(shù)據(jù)后,就可以自定義數(shù)據(jù)可視化展示了。但如果自己一條指標(biāo)一條指標(biāo)的加,就會(huì)很麻煩。實(shí)際上,Grafana
提供了許多優(yōu)秀的模板,可以網(wǎng)頁(yè)https://grafana.com/grafana/dashboards 查找。
本文使用Spring Boot 2.1 Statistics模板,導(dǎo)入方法如下:
點(diǎn)擊+
號(hào) --> Import
--> 輸入模板鏈接或ID --> 點(diǎn)擊Load。
成功導(dǎo)入后,就能監(jiān)控?cái)?shù)據(jù)了,而且,界面真的很好看:
4 總結(jié)
本文介紹了如何使用Prometheus + Grafana監(jiān)控Springboot應(yīng)用,實(shí)際上,Prometheus + Grafana十分強(qiáng)大,值得花時(shí)間好好研究。
本文例子中軟件版本信息如下:
springboot.version=2.2.5 micrometer-registry-prometheus=1.3.5 prometheus.version=2.16 grafana.version=6.7.0-beta1
到此這篇關(guān)于用Prometheus+Grafana監(jiān)控Springboot應(yīng)用的文章就介紹到這了,更多相關(guān)Prometheus+Grafana監(jiān)控Springboot內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot使用Prometheus采集自定義指標(biāo)數(shù)據(jù)的方法詳解
- Springboot搭建JVM監(jiān)控(Springboot + Prometheus + Grafana)
- SpringBoot 使用Prometheus采集自定義指標(biāo)數(shù)據(jù)的方案
- springboot2.X整合prometheus監(jiān)控的實(shí)例講解
- SpringBoot+Prometheus+Grafana實(shí)現(xiàn)應(yīng)用監(jiān)控和報(bào)警的詳細(xì)步驟
- Prometheus 入門(mén)教程之SpringBoot 實(shí)現(xiàn)自定義指標(biāo)監(jiān)控
- springboot集成普羅米修斯(Prometheus)的方法
- springboot整合prometheus實(shí)現(xiàn)資源監(jiān)控的詳細(xì)步驟
相關(guān)文章
Java如何實(shí)現(xiàn)可折疊Panel方法示例
這篇文章主要給大家介紹了關(guān)于利用Java如何實(shí)現(xiàn)可折疊Panel的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07啟動(dòng)Tomcat報(bào)錯(cuò)Unsupported major.minor version xxx的解決方法
這篇文章主要為大家詳細(xì)介紹了啟動(dòng)Tomcat報(bào)錯(cuò)Unsupported major.minor version xxx的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11springboot+mybatis+枚舉處理器的實(shí)現(xiàn)
在Spring?boot項(xiàng)目開(kāi)發(fā)中經(jīng)常遇到需要使用枚舉的場(chǎng)景,本文就介紹了springboot+mybatis+枚舉處理器的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03啟動(dòng)Solr提示Java版本低問(wèn)題解決方案
這篇文章主要介紹了啟動(dòng)Solr提示Java版本低問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10idea 安裝 Mybatis 開(kāi)發(fā)幫助插件 MyBatisCodeHelper-Pro 插件破解版的方法
MyBatisCodeHelper-Pro 插件可以幫助我們快速的開(kāi)發(fā) mybatis,這篇文章給大家介紹idea 安裝 Mybatis 開(kāi)發(fā)幫助插件 MyBatisCodeHelper-Pro 插件破解版的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧2020-09-09Spring-Web與Spring-WebFlux沖突問(wèn)題解決
Spring WebFlux是一套全新的Reactive Web技術(shù)棧,實(shí)現(xiàn)完全非阻塞,支持Reactive Streams背壓等特性,這篇文章主要給大家介紹了關(guān)于Spring-Web與Spring-WebFlux沖突問(wèn)題解決的相關(guān)資料,需要的朋友可以參考下2024-04-04SpringBoot實(shí)現(xiàn)發(fā)送郵件任務(wù)
這篇文章主要為大家詳細(xì)介紹了SpringBoot實(shí)現(xiàn)發(fā)送郵件任務(wù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02