prometheus之自动发现自动注册(consul)

自动发现、自动注册到consul

部署consul单机版

[root@bj consul]# mkdir -p /apps/consul/
[root@bj consul]# cd /apps/consul/
[root@bj consul]# cat docker-compose.yml 
version: "3.8"
services:
  consul1:
    image: consul:latest
    container_name: consul1
    restart: always
    command: agent -server -client=0.0.0.0 -bootstrap-expect=1 -node=consul1 -ui
    volumes:
      - /data/consul/consul1/data:/consul/data
      - /data/consul/consul1/config:/consul/config
    ports:
      - 81:8500
测试访问consul web ui
http://10.20.1xx.8x:8xx1/ui/dc1/services
consul api

接口文档地址:https://developer.hashicorp.com/consul/api-docs/agent/service#register-service

注册服务(PUT接口)

curl --request PUT --data @payload.json http://10.20.13.88:81/v1/agent/service/register?replace-existing-checks=true

json数据模版 payload.json

{
  "ID": "#server_ip#",
  "Name": "#server_ip#:9100",
  "Tags": ["#service_name#", "v1"],
  "Address": "#server_ip#",
  "Port": 9100,
  "Meta": {
    "cloud": "箭头云",
    "asset": "dc2",
    "job": "#service_name#",
    "os": "linux",
    "project": "#service_name#",
    "region": "default",
    "instance": "#server_ip#:9100"
  },
  "EnableTagOverride": false,
  "Check": {
    "HTTP": "http://#server_ip#:9100/metrics",
    "Interval": "10s"
  },
  "Weights": {
    "Passing": 10,
    "Warning": 1
  }
}

销毁注册

curl --request PUT http://10.20.13.88:81/v1/agent/service/deregister/10.188.1.251

prometheus 配置更改

配置自动发现

global:
  scrape_interval: 60s
  evaluation_interval: 5s
  scrape_timeout: 60s

scrape_configs:
  - job_name: 'omo-big-jty-linux(consul-api)'
    consul_sd_configs:
      - server: '10.20.13.88:81'
        services: []
    relabel_configs:
      - source_labels: [__meta_consul_tags]
        regex: .*omo-big.* ## 发现匹配__meta_consul_tags包含omo-big的数据
        action: keep
      - regex: __meta_consul_service_metadata_(.+)
        action: labelmap

自动注册脚本

#!/bin/bash
#######################################
#       register consul         #
#######################################
###
# @Time: 2022/10/21 15:31
# @Author: xhs
###
echo "参数个数:$#"
[[ $# -eq '2' ]] || echo -e '\033[32;31mError:\033[0m\n 输入参数的个数不正确\n usage: curl -sSL http://10.20.2.132/soft/consul_api_register.sh|bash -s 10.20.13.88:81 omo-big\n 10.20.13.88:81为consul的api接口地址\n omo-big为业务线名称\n 请根据需要适当修改'
[[ $# -eq '2' ]] || exit 1
consul_ip_port=$1
service_name=$2
consul_api_register(){
    tmp_path='/tmp'
    server_ip=`ifconfig eth0| sed -rn '2s/^[^0-9]+([0-9.]+) .*$/\1/p'`
    file_tmp="$tmp_path/consul-register-template.json"
    new_file_json="$tmp_path/consul-register-$server_ip.json"
    sudo curl -s -o $file_tmp http://10.20.0.186/software/node_export/consul/consul-register-template.json
    sudo cat $file_tmp |sed "s/#server_ip#/$server_ip/g"|sed "s/#service_name#/$service_name/g" > $new_file_json
    echo "$server_ip:9100开始注册到consul($consul_ip:$consul_port)"
    sudo curl --request PUT --data @${new_file_json} http://$consul_ip_port/v1/agent/service/register?replace-existing-checks=true
}
consul_api_register

执行方法
注意:在各个被监控端执行脚本ansible批量执行)

sh ./consul_api_register.sh 10.20.13.88:81 omo-big

查看注册是否成功


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值