Spring Boot Actuator Micrometer Prometheus Grafana 監控 視覺化

Spring Boot 2 Actuator+Prometheus+Grafana監控視覺化簡介

李佳樺 2021/06/10 10:13:33
803

開發環境

Java 版本:open jdk 11

Maven4.0.0

Spring Boot:2.3.3.RELEASE

 

開發實作

        從Spring Boot 2.0開始,Actuator將底層改為Micrometer,提供了更強、更靈活的監控能力。

Micrometer也支援向監控系統 Prometheus發送metrics,以下為實作說明。

      pom.xml 需增加以下依賴:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>

      設定檔application.properties加上相關設定

## ==============================================================
## Actuator
## ==============================================================
management.server.port=7001
management.server.address=10.37.129.2
#開啟所有端點(方便測試,先全開)
management.endpoints.web.exposure.include=*

      設定完成,啟動Server,連結測試URL http://10.37.129.2:7001/actuator,可以查看曝露出來的Endpoints。

      連結測試URL http://10.37.129.2:7001/actuator/prometheus,查看發送Prometheus的metrics。

Prometheus設定

      使用Docker方式安裝,取得最新版本image檔。(PS. 啟動port號9090)

#取得Prometheus docker image(最新)
指令:docker pull prom/prometheus

#啟動容器
docker run -d --name prometheus2021 -p 9090:9090 -v $PWD/prometheus:/etc/prometheus prom/prometheus

      修改prometheus.yml,添加job如紅框,路徑則為執行項目路徑。

      啟動prometheus,連結網址 http://localhost:9090/targets

     Prometheus也有提供監控資料視覺化,點選「Graph」,輸入查詢條件,點選「Execute」即可看到以下圖示結果:

Grafana設定

      使用Docker方式安裝,取得最新版本image檔。(PS. 啟動port號3000)

#取得Grafana docker image(最新)
指令:docker pull grafana/grafana

#啟動容器
docker run -d --name=grafana2021 -p 3000:3000 -v $PWD/grafana:/var/lib/grafana grafana/grafana

      啟動Grafana,連結網址 http://localhost:3000,初始帳號為admin / admin,第一次登入後會要求更改密碼。

登入成功,點選設定Data Source

    URL輸入Prometheus網址,資料確認輸入正確,點選「Save&Test」成功連線Prometheus

      Grafana官方有提供好用的模板供下載使用,以監控JVM為例,下載模板ID為4701

      選擇Prometheus,點選「Import」

      成功把JVM資料,視覺化呈現,方便人員監控系統。另外還可以設定告警通知,可以更即時知道系統發生問題。

參考資料

      https://spring.io/blog/2018/03/16/micrometer-spring-boot-2-s-new-application-metrics-collector

      https://prometheus.io/docs/prometheus/latest/installation/#using-docker

      https://grafana.com/docs/grafana/latest/installation/docker/

      https://www.itread01.com/content/1573459082.html

     

李佳樺