首页 > 其他分享 >[prometheus]基于consul的服务发现

[prometheus]基于consul的服务发现

时间:2022-08-22 09:58:12浏览次数:92  
标签:基于 http script consul 0.20 192.168 prometheus dir

前言

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

参考

标签:基于,http,script,consul,0.20,192.168,prometheus,dir
From: https://www.cnblogs.com/XY-Heruo/p/16611812.html

相关文章

  • Linux 基于源码安装 Redis
    1.下载Redis:前往Redis官网复制Redis相应版本的下载链接,到终端下载2.进入到指定目录,下载redis.tar.gz包,运行wget+复制的下载链接 例如:wgethttps://d......
  • C++反序列化--一种基于class infomation反射库的反序列化数据结构
    序列化与反序列化概念:将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯。这个将程序数据转化成能被存储并传输的格式的......
  • Spring入门案例-基于XML管理bean
    1.入门案例--hellospring创建MavenModule在pom.xml中引入依赖<dependencies><!--基于Maven依赖传递性,导入spring-context依赖即可导入当前所需所有jar......
  • 基于python的数学建模---logicstic回归
    樱花数据集的Logistic回归   绘制散点图importmatplotlib.pyplotaspltimportnumpyasnpfromsklearn.datasetsimportload_irisiris=load_iris()#获......
  • Mybatis 源码6 结果集映射流程 ,mybatis插件实现原理和基于mybatis插件实现参数化类型T
    Mybatis源码6结果集映射流程,mybatis插件实现原理和基于mybatis插件实现参数化类型TypeHandler一丶前情回顾书接上回,下面是SimpleExecutor执行查询的主要逻辑prepa......
  • 牛客网笔试输入输出处理方法总结(基于Python3.5)
    牛客网判题系统输入处理牛客网上的输入输出借鉴ACM模式给出,对于习惯了leetcode函数定义形式解题的小伙伴们来说确实比较生疏。为了避免在之后的笔试中再次吃亏,在这里对牛......
  • 05. Prometheus - 指标处理(PromQL)
    PromQLPromQL是Prometheus内置的数据查询语言,其提供对时间序列数据丰富的查询,聚合以及逻辑运算能力的支持。并被广泛应用在Prometheus的日常数据查询、可视化、告警......
  • 04. Prometheus - 指标处理(PromQL)
    指标(Metrics)Prometheus会将所有采集到的样本数据以时间序列(time-series)的方式保存在内存数据库中,并且定时保存到硬盘上。时间序列按照时间戳和值的序列顺序存放,每条时间......
  • 03. Prometheus - 数据采集
    Exporter在Prometheus的架构设计中,PrometheusServer并不直接监控特定的目标,它主要任务是负责数据的收集,存储并且对外提供数据查询支持。为了获取监控指标,就需要Prom......
  • 基于tkinter的点名
    importdatetimeimportrandomimporttkinterastkimporttimeclasschas_lp():def__init__(self):self.tr=tk.Tk()self.tr.title('点名')s......