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 实现自动服务发现

posted @ 2020-11-24 11:10  ZongweiBai  阅读(766)  评论(0编辑  收藏  举报