prometheus的动态发现(基于文件和consul)

prometheus的配置参考:https://prometheus.io/docs/prometheus/2.53/configuration/configuration/

没有使用动态配置前,需要在 prometheus.yml 这个配置文件中创建数据采集任务,然后重新加载服务。

如果把采集job剥离出去,写在一个文件中,那么采集就会很灵活。

在这里插入图片描述

1 基于文件的服务发现

1.修改prometheus主配置文件。创建2个基于文件发现的采集任务,基于 yaml,json

vim /zhiyong18/softwares/prometheus-2.53.2.linux-amd64/prometheus.yml...# 基于文件的服务发现- job_name: 'zhiyong18-file-service-discovery-json'file_sd_configs:- files:- /zhiyong18/softwares/prometheus-2.53.2.linux-amd64/config/*.json- job_name: 'zhiyong18-file-service-discovery-yaml'file_sd_configs:- files:- /zhiyong18/softwares/prometheus-2.53.2.linux-amd64/config/*.yaml

2.创建配置文件目录:mkdir -pv /zhiyong18/softwares/prometheus-2.53.2.linux-amd64/config

3.访问测试:http://10.0.0.31:9090/targets,没有看到要被监控的主机,原因没有书写动态发现文件

4.编辑文件,去开启node41节点

cat > /zhiyong18/softwares/prometheus-2.53.2.linux-amd64/config/linux.json <<EOF
[{"targets": [ "10.0.0.41:9100" ],"labels": {"name": "zhiyong18","yong": "zhiyong"}}
]
EOF

5.再次查看,就自动发现路主机 10.0.0.41。还有自定义的标签信息

在这里插入图片描述

6.使用yaml书写配置文件添加其他节点 node42、node43

cat > /zhiyong18/softwares/prometheus-2.53.2.linux-amd64/config/haha.yaml <<EOF
- targets:- '10.0.0.42:9100'- '10.0.0.43:9100'labels:apps: yamladdress: shahe
EOF

7.访问测试,可以看到node42,node43节点被prometheus发现了

在这里插入图片描述

2 consul的动态发现

2.1 consul介绍

consul 官网:https://www.consul.io/

Consul 是 HashiCorp 提供的一种开源工具,主要用于服务发现、配置管理和服务网格。用于管理微服务架构中的服务间通信、健康检查、配置存储等功能。Consul 使用一个中心化的服务目录来管理服务的注册和发现

consul功能:

  • 服务发现:服务自动注册自己到consul,客户端可以查询其他服务的健康状况,以便其他服务可以动态地发现其他服务
  • 健康检查:Consul 可以自动对服务进行健康检查(如 HTTP 请求、TCP 连接等),确保只有健康的服务可以被其他服务访问
  • KV 存储:Consul 提供一个分布式的 Key-Value 存储,用于存储配置数据、配置信息、密钥等
  • 服务网格:Consul 可以与 Kubernetes、Docker、Nomad 等工具进行集成,提供微服务的动态管理和调度功能

Consul 服务发现的工作原理:

  • 服务在启动时将自己注册到 Consul 的中心化服务目录中。服务注册时会包含服务的 IP 地址、端口号、健康检查配置等信息。
  • 其他服务可以向 Consul 查询服务信息,Consul 会返回可用服务列表及其健康状况
  • Consul 提供两种服务发现方式:DNS 和 HTTP API。通过 DNS 方式,服务可以像查询域名一样查询其他服务的地址;通过 HTTP API,可以以编程的方式查询服务信息
  • 健康检查是 Consul 的重要功能之一,可以定期检查服务的健康状况。如果服务变得不健康,Consul 会从服务目录中移除该服务

在这里插入图片描述

2.2 配置consul服务发现

在这里插入图片描述

01 部署consul

主机
10.0.0.41
10.0.0.42
10.0.0.43

1.所有节点下载consul

wget https://releases.hashicorp.com/consul/1.19.1/consul_1.19.1_linux_amd64.zip

2.所有节点解压consul。里面是一个二进制文件,直接移动到 /usr/sbin/ 就行

unzip consul_1.19.1_linux_amd64.zip  -d /usr/local/bin/

3.运行consul 集群。由于没有配置相关目录、systemd,所以会一直在前台运行

follower41节点:
consul agent \
-server -bind=10.0.0.41 \
-data-dir=/zhiyong18/softwares/consul \
-client=10.0.0.41 \
-ui -retry-join=10.0.0.43follower42节点:
consul agent \
-bind=10.0.0.42 \
-data-dir=/zhiyong18/softwares/consul \
-client=10.0.0.42 \
-ui -retry-join=10.0.0.43leader43节点:
consul agent \
-server -bootstrap \
-bind=10.0.0.43 \
-data-dir=/zhiyong18/softwares/consul \
-client=10.0.0.43 -ui

4.查看各节点的监听端口

ss -ntl | grep 8500LISTEN 0      4096       10.0.0.41:8500      0.0.0.0:*

5.访问console服务的WebUI:http://10.0.0.43:8500/ui/dc1/nodes

在这里插入图片描述

02 注册prometheus

1.修改prometheus的配置文件。从指定的三个 Consul 服务器中发现服务,但排除名称为 consul 的服务

vim /zhiyong18/softwares/prometheus/prometheus.yml
...
scrape_configs:...- job_name: "zhiyong18-consul-seriver-discovery"consul_sd_configs:- server: 10.0.0.43:8500- server: 10.0.0.42:8500- server: 10.0.0.41:8500relabel_configs:# 匹配consul的源标签字段,表示服务名称- source_labels: [__meta_consul_service]# 指定源标签的正则表达式,若不定义,默认值为"(.*)"regex: consulaction: drop

标签处理参考:https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_action

3.由于之前在node42安装了 prometheus的node-exporter。所以现在让节点被发现,需发送http PUT 方法

curl -X PUT -d '
{"id": "prn42","name": "prn42","address": "10.0.0.42","port": 9100,"tags": ["node-exporter"],"checks": [{"http": "http://10.0.0.42:9100","interval": "5m"}]
}' http://10.0.0.42:8500/v1/agent/service/register

4.在consul上查看节点注册情况

在这里插入图片描述

5.可以发现这些被监控的主机

在这里插入图片描述

6.注册到consul的服务如何删除:

curl -X PUT http://10.0.0.42:8500/v1/agent/service/deregister/prn42

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/32404.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓逆向魔改版 Base64 算法还原

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 目标 app 简介 可以看到 app 中共有 4 种 Base64 算法。选中一个随机字符串&#xff0c;可以选择其中一种算法进行编码解码。 app地址&#xff1a;https://gi…

CI/CD—GitLab部署

GitLab简介&#xff1a; GitLab 是一个用于代码托管和软件开发协作的平台&#xff0c;在全球开发者社区及企业中应用广泛&#xff0c;以下是对它的详细介绍&#xff1a; 主要功能 代码托管&#xff1a;提供了基于 Git 的代码仓库管理功能&#xff0c;支持创建、克隆、推送、…

采集OPCUA/S7

需求&#xff1a;采集OPCUA服务数据 采用&#xff1a;KEPServerEX6获取OPCUA服务数据 1.新建甬道3 2.驱动程序选择&#xff1a;OPC UA client 3.设置UA服务器-端点URL&#xff1a;opc.tcp://ip:502 安装教程&#xff1a;https://blog.csdn.net/weixin_41425107/article/detai…

3.12代码随想录第十五天打卡

654.最大二叉树 (1)题目描述: (2)解题思路: class Solution { public:TreeNode* constructMaximumBinaryTree(vector<int>& nums) {TreeNode* node new TreeNode(0);if (nums.size() 1) {node->val nums[0];return node;}// 找到数组中最大的值和对应的下标…

安全左移动赋能:灵脉IAST交互式应用安全测试平台

左移的安全赋能 Earlier Security Empowerment 悬镜灵脉IAST灰盒安全测试平台作为国内领先的交互式应用安全测试平台&#xff0c;透明集成于现有IT流程&#xff0c;自动化完成业务代码上线前安全测试&#xff0c;重点覆盖90%以上中高危漏洞&#xff0c;防止应用带病上线&…

Linux下学【MySQL】常用函数助你成为数据库大师~(配sql+实操图+案例巩固 通俗易懂版~)

绪论​ 每日激励&#xff1a;“唯有努力&#xff0c;才能进步” 绪论​&#xff1a; 本章是MySQL中常见的函数&#xff0c;利用好函数能很大的帮助我们提高MySQL使用效率&#xff0c;也能很好处理一些情况&#xff0c;如字符串的拼接&#xff0c;字符串的获取&#xff0c;进制…

波特率、比特率、传信率、传码率......

去年搞过一段时间的无线通信&#xff0c;当时我脑子里真的是一团乱麻&#xff0c;本身咱也不是学通信的&#xff0c;咱是学机械出身的&#xff0c;后面又搞电&#xff0c;反正对于通信这一块就不是很懂&#xff0c;后面也慢慢搞出来了一点小东西&#xff0c;但是对于一些细节还…

华为HCIE认证用处大吗?

新盟教育 专注华为认证培训十余年 为你提供认证一线资讯&#xff01; 在ICT行业的认证体系中&#xff0c;华为HCIE认证一直备受关注。那么&#xff0c;华为HCIE认证用处大吗&#xff1f;今天咱们就来深入探讨一下&#xff0c;以数据通信方向为例&#xff0c;看看它到底能带来什…

【WRF-Chem】预处理工具(Preprocessors)总结

WRF-Chem 预处理工具&#xff08;Preprocessors&#xff09; 化学选项&#xff08;Chemistry Options&#xff09;数据下载 预处理工具&#xff08;Preprocessors&#xff09;工具1&#xff1a;mozbc工具2&#xff1a;bio_emiss工具3&#xff1a;anthro_emiss工具4&#xff1a;…

六、OpenGL中EBO的使用及本质

文章目录 一、什么是顶点索引二、什么是EBO三、EBO使用的完整代码 一、什么是顶点索引 OpenGL 中&#xff0c;顶点索引&#xff08;Vertex Index&#xff09;用于减少重复的顶点数据&#xff0c;提高绘制效率。其核心概念涉及索引缓冲对象&#xff08;Index Buffer Object&…

Python+jupyter进行数据分析与数据挖掘

随着人工智能的发展&#xff0c;现在越来越多人使用Python语言进行数据分析。Python在数据分析中有哪些优势呢&#xff1f;由于Python中有很多的第三方插件&#xff0c;接下来我们探讨Pythonjupyter的结合&#xff0c;在数据分析领域中的应用。 一、jupyter介绍 Jupyter 是一个…

AI4CODE】3 Trae 锤一个贪吃蛇的小游戏

【AI4CODE】目录 【AI4CODE】1 Trae CN 锥安装配置与迁移 【AI4CODE】2 Trae 锤一个 To-Do-List 这次还是采用 HTML/CSS/JAVASCRIPT 技术栈 Trae 锤一个贪吃蛇的小游戏。 1 环境准备 创建一个 Snake 的子文件夹&#xff0c;清除以前的会话记录。 2 开始构建 2.1 输入会…

PostgreSQL17(最新版)安装部署

PostgreSQL 17已与2024年9月26日正式发布&#xff01;&#xff01;&#xff01; 一、Postgres概述 官网地址&#xff1a;PostgreSQL: The world’s most advanced open source database Postgres作为最先进的开源数据库&#xff08; the latest version of the world’s most…

捌拾贰- 贝尔不等式 (2)

1. 贝尔不等式理解 我感觉我前期理解的不是很对 柒拾玖- 贝尔不等式 … 思来想去几天&#xff0c;感觉贝尔不等式应该是这样来的 因为观测的值只有可能是 1 (别问我为什么) , 设观测角度 Q 值为 1 的概率为 a , -1 的概率为 b , Q 的数学期望值为 E(Q) a * 1 b * (-1) a…

小凯的疑惑(数论 )

#include <iostream> using namespace std; typedef long long ll; int main() {// 请在此输入您的代码ll a,b;cin>>a>>b;ll N a * b - a - b;cout << N ;return 0; } 如果 a 和 b 互素&#xff0c;那么 a * b - a - b 是最大无法被表示的金额

Android内存泄漏检测与优化

Android内存泄漏检测与优化 一、内存泄漏基础知识 1.1 什么是内存泄漏 在Android开发中&#xff0c;内存泄漏(Memory Leak)是指程序在申请内存后&#xff0c;无法释放已申请的内存空间&#xff0c;导致系统可用内存减少的问题。随着泄漏内存的增加&#xff0c;应用可能会变得…

51单片机Proteus仿真速成教程——P1-软件与配置+Proteus绘制51单片机最小系统+新建程序模版

前言&#xff1a;本文主要围绕 51 单片机最小系统的绘制及程序模板创建展开。首先介绍了使用 Proteus 绘制 51 单片机最小系统的详细步骤&#xff0c;包括软件安装获取途径、工程创建、器件添加&#xff08;如单片机 AT89C51、晶振、电容、电阻、按键等&#xff09;、外围电路&…

微信小程序校园跑腿的设计与实现【lw+源码+部署+视频+讲解】

第一章 绪论 1.1 本课题研究背景 近年来城市与社会经济发展较快&#xff0c;人们的生活水平不断提高&#xff0c;消费观念发生很大变化&#xff0c;随着 微信小程序技术的发展&#xff0c;小程序已经渗透到人们日常生活的方方面面&#xff0c;悄悄地改变着人们的生活方式。在…

多用户网页在线聊天室(测试报告)

文章目录 多用户网页在线聊天室一&#xff0c;项目概括1.1 项目名称1.2 测试时间1.3 项目背景1.3 编写目的 二&#xff0c;测试计划2.1 测试环境与配置2.2 测试用例2.3实际执行用例2.3.1登录2.3.2聊天消息列表展示2.3.3聊天消息详情页展示2.3.4联系人页展示2.3.5信息的编辑与发…

自由学习记录(43)

不同的服务器可以使用不同协议&#xff0c;但协议本身不会决定服务器的类型 类型特点物理服务器真实的计算机&#xff08;如 Dell、HP 服务器&#xff09;虚拟服务器运行在云计算平台上的 VM&#xff08;如 AWS EC2、阿里云 ECS&#xff09;容器化服务器通过 Docker / Kuberne…