1 簡介 項目越做越發覺得,任何一個系統上線,運維監控都太重要了。關於Springboot微服務的監控,之前寫過 "【Springboot】用Springboot Admin監控你的微服務應用" ,這個方案可以實時監控並提供告警提醒功能,但不能記錄歷史數據,無法查看過去1小時或過去1天等運維情況。本 ...
1 簡介
項目越做越發覺得,任何一個系統上線,運維監控都太重要了。關於Springboot微服務的監控,之前寫過【Springboot】用Springboot Admin監控你的微服務應用,這個方案可以實時監控並提供告警提醒功能,但不能記錄歷史數據,無法查看過去1小時或過去1天等運維情況。本文介紹Prometheus + Grafana的方法監控Springboot 2.X,實現美觀漂亮的數據可視化。
2 Prometheus
Prometheus是一套優秀的開源的監控、報警和時間序列資料庫組合系統,在現在最常見的Kubernetes
容器管理系統中,通常會搭配Prometheus
進行監控。
2.1 引入到Springboot
將Prometheus
引入依賴如下:
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
對於Springboot,要開啟Actuator
,並打開對應的Endpoint
:
management.endpoints.web.exposure.include=*
# 或者
management.endpoints.web.exposure.include=prometheus
啟動Springboot
後,可以通過下麵URL看能不能正確獲取到監控數據:
localhost:8080/actuator/prometheus
獲取數據成功,說明Springboot
能正常提供監控數據。
2.2 Docker方式使用
為了方便,使用Docker
啟動Prometheus
:
# 拉取docker鏡像
docker pull prom/prometheus
準備配置文件prometheus.yml
:
scrape_configs:
# 可隨意指定
- job_name: 'spring'
# 多久採集一次數據
scrape_interval: 15s
# 採集時的超時時間
scrape_timeout: 10s
# 採集的路徑
metrics_path: '/actuator/prometheus'
# 採集服務的地址,設置成Springboot應用所在伺服器的具體地址
static_configs:
- targets: ['hostname:9000','hostname:8080']
啟動docker實例:
# 埠為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 測試與查看
成功啟動後,就可以打開網頁查看了,並且能圖形化展示,URL為http://localhost:9090/。
如上圖所示,打開網頁後,隨便選取一個對應的監控指標與參數,點擊Execute
就可以查看了。
3 Grafana
Grafana
是一個開源的度量分析與可視化套件,純JavaScript
開發的前端工具,通過訪問庫(如InfluxDB
),展示自定義報表、顯示圖表等。它的UI十分靈活,有豐富的插件和模板,功能強大。一般用在時序數據的監控方面。
3.1 Docker安裝與啟動
# 拉取鏡像
docker pull grafana/grafana
# 運行實例
docker run -d -p 3000:3000 grafana/grafana
啟動成功後,訪問http://localhost:3000 檢查是否成功,初始管理員賬號密碼為admin/admin
。
3.2 配置數據源
Grafana
展示數據,則需要配置對應的數據源,本文中配置之前安裝啟用的Prometheus
數據源,具體配置如下圖所示:
需要註意的是Access
要選Browser
模式,否則無法正常獲取數據。配置完成後,點擊Save & Test
即可。
3.3 模板套用
能夠獲取數據後,就可以自定義數據可視化展示了。但如果自己一條指標一條指標的加,就會很麻煩。實際上,Grafana
提供了許多優秀的模板,可以網頁https://grafana.com/grafana/dashboards 查找。
本文使用Spring Boot 2.1 Statistics模板,導入方法如下:
點擊+
號 --> Import
--> 輸入模板鏈接或ID --> 點擊Load。
成功導入後,就能監控數據了,而且,界面真的很好看:
4 總結
本文介紹瞭如何使用Prometheus + Grafana監控Springboot應用,實際上,Prometheus + Grafana十分強大,值得花時間好好研究。
本文例子中軟體版本信息如下:
springboot.version=2.2.5
micrometer-registry-prometheus=1.3.5
prometheus.version=2.16
grafana.version=6.7.0-beta1
歡迎關註公眾號<南瓜慢說>,將持續為你更新...
多讀書,多分享;多寫作,多整理。