[prometheus]基于consul的服务发现
前言
prometheus默认使用静态配置文件监控服务,每次添加服务都要重载,比较麻烦。好在官方提供多种动态服务发现的方法,常用的一般有基于文件服务发现、基于consul服务发现和基于dns服务发现,本文主要介绍基于consul如何实现动态增加、删除监控节点。
- prometheus版本:2.38.0
- consul版本:1.13.1
- 系统版本:centos 7
安装consul
- 使用二进制包安装
# 先启动试试
./consul agent -dev
- 编辑服务注册文件
{
"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
}
}
- 脚本启动,内容如下,仅供参考
#!/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
- 测试。浏览器访问 IP:8500 看能不能打开web ui界面
配置prometheus
- 安装略过
- 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
- 安装略过
- 启动
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
参考
[prometheus]基于consul的服务发现的更多相关文章
- Prometheus 基于文件的服务发现
Prometheus 基于文件的服务发现 官方文档:https://github.com/prometheus/prometheus/tree/master/discovery 服务发现支持: end ...
- Prometheus基于Eureka的服务发现
Prometheus基于Eureka的服务发现 一.背景 二.实现步骤 1.eureka 客户端注册到prometheus中 2.prometheus中的写法 3.实现效果 三.完整代码 四.参考链接 ...
- Prometheus基于文件的服务发现
Prometheus基于文件的服务发现 一.基于文件的服务发现 1.prometheus.yml 配置文件的写法 2.file_sd 目录下的文件 3.配置结果 二.注意事项 三.参考链接 一.基于文 ...
- prometheus — 基于文件的服务发现
基于文件的服务发现方式不需要依赖其他平台与第三方服务,用户只需将要新的target信息以yaml或json文件格式添加到target文件中 ,prometheus会定期从指定文件中读取target信息 ...
- Go | Go 使用 consul 做服务发现
Go 使用 consul 做服务发现 目录 Go 使用 consul 做服务发现 前言 一.目标 二.使用步骤 1. 安装 consul 2. 服务注册 定义接口 具体实现 测试用例 3. 服务发现 ...
- Prometheus基于consul自动发现监控对象 https://www.iloxp.com/archive/11/
Prometheus 监控目标为什么要自动发现 频繁对Prometheus配置文件进行修改,无疑给运维人员带来很大的负担,还有可能直接变成一个“配置小王子”,即使是配置小王子也会存在人为失误的情况 ...
- .NET Core微服务之基于Consul实现服务治理
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.Consul基础介绍 Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发 ...
- prometheus 基于DNS的目标发现
prometheus 基于DNS的目标发现 DNS服务发现依赖于查询A.AAAA或SRV DNS记录. 1.基于 SRV 记录发现 scrape_configs: - job_name: 'webap ...
- 使用Consul做服务发现的若干姿势
从2016年起就开始接触Consul,使用的主要目的就是做服务发现,后来逐步应用于生产环境,并总结了少许使用经验.最开始使用Consul的人不多,为了方便交流创建了一个QQ群,这两年微服务越来越火,使 ...
- Consul做服务发现
使用Consul做服务发现的若干姿势 https://www.cnblogs.com/bossma/p/9756809.html 从2016年起就开始接触Consul,使用的主要目的就是做服务发现,后 ...
随机推荐
- 深入理解 python 虚拟机:描述器的王炸应用-property、staticmethod 和 classmehtod
深入理解 python 虚拟机:描述器的王炸应用-property.staticmethod 和 classmehtod 在本篇文章当中主要给大家介绍描述器在 python 语言当中有哪些应用,主要介 ...
- 【JS】Knockout动态刷新及绑定数据
<script> // Knockout ViewModel Define function RemarkTemplateModel() { var self = this; // Cur ...
- 【python】使用爬虫爬取动漫之家漫画全部更新信息
本篇仅在于交流学习 网站名称为: https://manhua.dmzj.com/ 1.首先将相应的库导入: import requests from lxml import etree 2.确定漫画 ...
- vue全家桶进阶之路5:DOM文档对象模型
一.DOM对象 DOM,全称"DocumentObjectModel(文档对象模型)",它是由W3C组织定义的一个标准. 在前端开发时,我们往往需要在页面某个地方添加一个元素或者删 ...
- 为什么有了 HTTP 还要 RPC
哈喽大家好,我是咸鱼 随着互联网技术的发展,分布式架构越来越被人们所采用.在分布式架构下,为了实现复杂的业务逻辑,应用程序需要分布式通信实现远程调用 而这时候就需要一种协议来支持远程过程调用,以便实现 ...
- STM32为何在诸多的单片机中脱颖而出?
1.前言 在STM32之前,都是老大头51,带着它的"小弟们" MSP430.AVR.PIC在单片机界呼风唤雨.那个时候,市场上遍布8位机,大学教材用51入门,个人.企业学单片机 ...
- Qt+QtWebApp开发笔记(三):http服务器动态html连接跳转基础交互
前言 网页很多时候是动态的,于是本篇文章目标实现一个简答的动态页面-页静态页面互相跳转,点击可以跳转到子页面. Demo 下载地址 链接:https://pan.baidu.com/ ...
- Kubernetes GoRoutineMap工具包代码详解
1.概述 GoRoutineMap 定义了一种类型,可以运行具有名称的 goroutine 并跟踪它们的状态.它防止创建具有相同名称的多个goroutine,并且在上一个具有该名称的 goroutin ...
- 领福利 | 腾讯千帆HR数字化专场,教你数字时代的技术招聘秘笈
HR难,做技术招聘的HR难上加难 技术部门急需用人,收到的简历却寥寥无几? 推了简历,却被用人部门告知完全不合适? 候选人过了面试,却鸽了offer? 桥豆麻袋! 腾讯千帆联合ShowMeBug举办 ...
- 【后端面经-Java】Java创建线程的方法简介
目录 1. 线程的基本概念 1.1 线程 1.2 线程状态和生命周期 2. 创建线程的四种方法 2.1 继承Thread类 2.2 实现Runnable接口 2.3 实现Callable接口 2.4 ...