1 簡介
專案越做越發覺得,任何一個系統上線,維運監控都太重要了。
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。
成功導入後,就能監控資料了,而且,介面真的很好看:
##本文範例中軟體版本資訊如下:springboot.version=2.2.5 micrometer-registry-prometheus=1.3.5 prometheus.version=2.16 grafana.version=6.7.0-beta1
以上是如何使用Prometheus+Grafana的方法監控Springboot應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!