Prometheus + Grafana搭建可視化監控系統(2)


上文使用靜態配置的方式達到了監控服務的目的,實際的生產環境中微服務的數量多達幾十甚至上百個,這時候靜態配置的方式就顯得難以管理和維護。Prometheus官方提供了多種服務發現的方式配置服務,這里我們使用服務發現的方式解決實際環境下微服務監控的問題。

Prometheus官方集成了Consul實現了微服務的監控,對於國內很多團隊采用的Eureka服務發現組件沒有支持,當然我們可以從Github上找到Eureka的Adapter,我們可以利用這個Adapter變相的實現Eureka和Prometheus的集成。

Eureka

首先給出Github的地址:eureka-consul-adapter

首先需要把maven依賴添加到Eureka Server服務中,pom依賴如下:

<properties>
    <eureka-consul-adapter.version>1.4.0</eureka-consul-adapter.version>
</properties>

<dependencies>
    <!--為了讓prometheus也能監控Eureka Server,添加此依賴-->
    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-registry-prometheus</artifactId>
    </dependency>

    <dependency>
        <groupId>at.twinformatics</groupId>
        <artifactId>eureka-consul-adapter</artifactId>
        <version>${eureka-consul-adapter.version}</version>
    </dependency>
</dependencies>

為了讓Prometheus也能監控Eureka Server,我們也配置一下yaml文件,只需要配置actuator相關的參數:

# actuator相關配置
management:
  endpoints:
    web:
      exposure:
        include: "*"
      base-path: /actuator
  endpoint:
    health:
      enabled: true
      show-details: always
    prometheus:
      enabled: true
  metrics:
    export:
      prometheus:
        enabled: true
        step: 1ms
        descriptions: true
    tags:
      application: EUREKA_SERVER

注意這里actuator的路徑是 /actuator。至此Eureka Server的集成就完成了。

Prometheus

和上文配置一樣,我們同樣需求修改prometheus.yml,在 scrape_configs節點下添加Eureka Server的配置,Prometheus支持Consul,通過上面Adapter的集成,我們將Eureka偽裝成了Consul,這里修改server的值,同時配置metrics_path(如果不配置,默認就是/metrics,Prometheus是無法識別的)。

# consul監控
  - job_name: 'consul-prometheus'
    consul_sd_configs:
    - server: '192.168.80.1:1514'
      services: []
    metrics_path: '/actuator/prometheus'

配置完成后重啟Prometheus,這時候再去觀察targets,在Eureka上注冊的微服務都被Prometheus抓取到了。

img

Grafana

最后配置Grafana,和上文的配置完全相同,這次我們使用漢化程度比較好的 1 SLS JVM監控大盤 ,導入后就可以看到在Eureka上注冊的微服務了,通過 ApplicationInstance 可以切換不同的微服務和實例。

對於使用Nacos的同學,同樣有現成的Adapter可以使用:nacos-consul-adapter

Eureka Server集成的代碼,我已上傳到Github,有需要自取:spring-boot-discovery-server

參考

Prometheus

Prometheus 通過 consul 實現自動服務發現


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM