基于consul的promethues自动化发现

本文介绍如何使用Consul进行服务注册,并通过Prometheus实现服务发现与监控。具体包括配置Consul服务、启动Prometheus并配置其动态读取Consul中的服务列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先你得明白consul是干嘛的,具体的自己去Google吧,这里不多说

我们在consul上注册服务

先写好配置

[root@ht2-gs-1 ~]# cd /etc/consul.d/
[root@ht2-gs-1 consul.d]# ls
gs.json  mysql.json  node.json
[root@ht2-gs-1 consul.d]# cat gs.json 
{"service":
          {"name": "gs",
           "tags": ["gs"],
           "port": 8000,
           "check": 
                  {"tcp": "10.0.0.10:8000","interval": "10s"}
          }
}
[root@ht2-gs-1 consul.d]# cat mysql.json 
{"service":
          {"name": "mysql",
           "tags": ["mysql"],
           "port": 9104,
           "check": 
                  {"tcp": "10.0.0.10:9104","interval": "10s"}
          }
}
[root@ht2-gs-1 consul.d]# cat node.json 
{"service":
          {"name": "node",
           "tags": ["node"],
           "port": 9100,
           "check": 
                  {"tcp": "10.0.0.10:9100","interval": "10s"}
          }
}

如上,我们需要注册3个服务,[gs,mysql,node]

其实这3个服务就是我们的promethues的endpoint

启动consul

配置 promethues.yml

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    static_configs:
      - targets: ['127.0.0.1:9090']
        labels :
                instance : prometheus-server
                group: 'prometheus'

  - job_name: 'gs-server'
    consul_sd_configs:
    - server : '127.0.0.1:8500'
      services: ['gs', 'node', 'mysql']
      scheme: http
    relabel_configs:
    - source_labels: [__meta_sd_consul_tags]
      separator:     ','
      regex:         label:([^=]+)=([^,]+)
      target_label:  ${1}
      replacement:   ${2}

  - job_name: 'slaves'
    consul_sd_configs:
    - server : '127.0.0.1:8500'
      services: ['slave3306','slave3307','slave3308','slave3309','slave3310','slave3311','slave3312']
      scheme: http
    relabel_configs:
    - source_labels: [__meta_sd_consul_tags]
      separator:     ','
      regex:         label:([^=]+)=([^,]+)
      target_label:  ${1}
      replacement:   ${2}

重启promethues,这样promethues可以动态的读取配置

161946_Twpc_1790313.png

so,只要我们把服务注册到consul里,那么promethues就可以动态的跟踪到endpoint,获取我们需要的数据

转载于:https://my.oschina.net/jastme/blog/1556126

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值