[prometheus]基于consul的服务发现

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: [prometheus]基于consul的服务发现

前言

prometheus默认使用静态配置文件监控服务,每次添加服务都要重载,比较麻烦。好在官方提供多种动态服务发现的方法,常用的一般有基于文件服务发现、基于consul服务发现和基于dns服务发现,本文主要介绍基于consul如何实现动态增加、删除监控节点。

  • prometheus版本:2.38.0
  • consul版本:1.13.1
  • 系统版本:centos 7

安装consul

  1. 使用二进制包安装
# 先启动试试
./consul agent -dev
  1. 编辑服务注册文件
{
    "service": {
        "id": "192.168.0.20",
        "name": "node_exporter",
        "address": "192.168.0.20",
        "tags": [
            "exporter"
        ],
        "checks": [
            {
                "http": "http://192.168.0.20:9100/metrics",
                "interval": "5s"
            }
        ],
        "port": 9100
    }
}
  1. 脚本启动,内容如下,仅供参考
#!/bin/bash
set -u
script_dir=$(cd $(dirname $0) && pwd)
logfile=${script_dir}/logs/app.log
function prepare(){
    [ -d ${script_dir}/logs ] || mkdir -p ${script_dir}/logs
    [ -d ${script_dir}/data ] || mkdir -p ${script_dir}/data
}
function startapp(){
    nohup ${script_dir}/consul agent -dev --client 0.0.0.0 \
        -config-dir=${script_dir}/conf \
        -data-dir=${script_dir}/data \
        -pid-file=${script_dir}/logs/app.pid \
        > ${logfile} 2>&1 &
}
function main(){
    prepare
    startapp
}
main
  1. 测试。浏览器访问 IP:8500 看能不能打开web ui界面

配置prometheus

  1. 安装略过
  2. prometheus.yml相关配置
scrape_configs:
  - job_name: "node_exporter"
    metrics_path: /metrics
    scheme: http
    consul_sd_configs:
      - server: 192.168.0.20:8500
        services:
          - node_exporter

配置node_exporter

  1. 安装略过
  2. 启动
nohup /home/apps/node_exporter/node_exporter \
  --web.listen-address=":9090" > /dev/null 2>&1 &

其它

  • 通过http api注册服务
curl -X PUT -d '{"id": "192.168.0.20","name": "node_exporter","address": "192.168.0.20","port": 9100,"tags": ["linux"],"checks": [{"http": "http://192.168.0.20:9090/metrics", "interval": "5s"}]}' http://192.168.0.20:8500/v1/agent/service/register
  • 通过 http api 删除服务
# 删除节点时候指定id
curl -X PUT http://192.168.0.20:8500/v1/agent/service/deregister/192.168.0.20
  • 如果要添加其它服务器节点,则替换id、address、checks等即可,name不变,比如192.168.0.21也安装node_exporter, 向consul的api接口发起请求添加服务
curl -X PUT -d '{"id": "192.168.0.21","name": "node_exporter","address": "192.168.0.21","port": 9090,"tags": ["linux"],"checks": [{"http": "http://192.168.0.21:9090/metrics", "interval": "5s"}]}' http://192.168.0.20:8500/v1/agent/service/register

参考

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
相关文章
|
11月前
|
Go 数据中心 微服务
Golang 语言微服务的服务发现组件 Consul 的系统架构介绍
Golang 语言微服务的服务发现组件 Consul 的系统架构介绍
87 0
|
2月前
|
Prometheus 监控 Cloud Native
Prometheus结合Consul采集多个MySQL实例的监控指标
将 Prometheus 与 Consul 结合使用,实现对多个 MySQL 实例的自动发现与监控,不仅提高了监控的效率和准确性,也为管理动态扩缩容的数据库环境提供了强大的支持。通过细致配置每一部分,业务可以获得关键的性能指标和运行健康状况的即时反馈,进而优化资源配置,提高系统的稳定性和可用性。
61 3
|
28天前
|
存储 Ubuntu Linux
在Ubuntu 14.04上使用Consul服务发现系统的介绍
在Ubuntu 14.04上使用Consul服务发现系统的介绍
14 0
|
4月前
|
Prometheus 监控 Cloud Native
Linux|centos7 Prometheus的自动服务发现 一(文件发现机制)
Linux|centos7 Prometheus的自动服务发现 一(文件发现机制)
87 0
|
11月前
|
Prometheus 监控 Cloud Native
Prometheus基于consul服务发现
Prometheus基于consul服务发现
|
存储 Java 数据中心
|
Prometheus 监控 Cloud Native
Prometheus: ansible+consul自动发现,监控服务器
Prometheus: ansible+consul自动发现,监控服务器
528 0
|
缓存 中间件 开发工具
go-micro使用Consul做服务发现的方法和原理
go-micro使用Consul做服务发现的方法和原理
195 0
|
JSON Prometheus 监控
【2023】Prometheus-基于文件的服务发现
【2023】Prometheus-基于文件的服务发现
181 0
|
Prometheus Kubernetes 监控
Prometheus 服务发现和重新打标|学习笔记(二)
快速学习 Prometheus 服务发现和重新打标
322 0
Prometheus 服务发现和重新打标|学习笔记(二)