prometheus-服务发现

名词定义

概念

 基于文件的服务发现

基于Consul的服务发现

其他动态的服务发现

对比

参考


名词定义

  • target:被监控的目标节点

概念

已经知道prometheus是基于pull形式进行数据采集,prometheus可以通过静态配置更新监控的目标,但这样势必带来巨大的运维开销。如何实现服务的自动发现,这就需要引入中间人(服务注册中心),这就是服务发现:

服务发现

 基于文件的服务发现

通过创建target.json文件,将所有的target配置在target.json,在需要更新target的时候,只需要更新target.json,格式如下:

[
  {
    "targets": [ "localhost:8080"],
    "labels": {
      "env": "localhost",
      "job": "cadvisor"
    }
  }
]

在prometheus启动的时候,通过--config.file指定配置文件prometheus.yml,格式如下:

global:
  scrape_interval: 15s
  scrape_timeout: 10s
  evaluation_interval: 15s
scrape_configs:
- job_name: 'file_ds'
  file_sd_configs:
  - refresh_interval: 1m
  - files:
    - targets.json

 其中refresh_interval指定了定时读取target.json的时间间隔。

这种方式虽然解决了不需要修改prometheus.yml的问题,但是问题改成了需要运维维护target.json,没根本解决问题。

基于Consul的服务发现

关于Consul的介绍这里不多介绍,我们只需知道,Consul是一个服务配置、发现的中间件。

在基于文件的服务发现中提到,target的更新需要修改target.json,本质上没有解决运维操作的步骤。而基于Consul的服务发现,则是通过节点主动注册信息到Consul,prometheus通过和Consul集成,从Consul中以http协议获取target的信息,集成见prometheus.yml部分配置:

- job_name: consul_sd
    metrics_path: /metrics
    scheme: http
    consul_sd_configs:
      - server: ${consul_ip}:8500
    relabel_configs:
    # 删除consul自身
    - source_labels: [__meta_consul_service]
      regex: '^consul$'
      action: drop
    #元数据信息添加到job标签
    - source_labels: [__meta_consul_service]
      target_label: "job" 
  • 缺点
  1. 需要引入额外的中间件consule
  2. 需要与target集成,在target启动时,需要在consul上进行注册 

其他动态的服务发现

  1. azure_sd_config :从Azure的vm上拉取配置
  2. dns_sd_config: 基于dns的服务发现

对比

方式 优点 缺点 依赖项 是否建议
基于文件的服务发现

1、 简单

1、没解决根本问题,不能采用   不建议采用
基于Consul的服务发现 1、便于运维

1、需要target集成sdk,在sdk中向consul注册节点信息

consul集群 建议采用
其他服务发现 1、便于运维 1、依赖资源层环境   不建议采用
使用pushgateway 1、便于运维

1、需要target集成sdk,在sdk中定时上报指标 

2、单点问题,需要借助nginx实现多机部署

  可以考虑

 

 

 

 

通过上面对比,鉴于基于Consul的服务发现模式缺点更少;

为啥要跟pushgateway对比,它们都是为了解决prometheus通过pull拉取监控target带来的运维问题

参考

https://yunlzheng.gitbook.io/prometheus-book/part-ii-prometheus-jin-jie/sd/service-discovery-with-consul

发布了22 篇原创文章 · 获赞 1 · 访问量 525

猜你喜欢

转载自blog.csdn.net/weixin_37512224/article/details/104311486