外部普米集中监控多个Prometheus实例:Prometheus Agent 模式与Prometheus 联邦模式 超级详细

外部普米集中监控多个Prometheus实例

  • Prometheus Agent 模式-使用推送方式来监控
    • 1.外部Prometheus配置
        • 1.需要开放端口,在启动时,需要配置开放监听端口
        • 2.添加prometheus启动参数
        • 3.修改配置后重启prometheus即可
    • 2.各个节点的普米配置
        • 1.修改prometheus.yml
    • 测试是否成功
        • 遇到问题
          • 1.外部普米未开启远程写入功能
  • prometheus 联邦模式(联合允许 Prometheus 服务器从另一个 Prometheus 服务器抓取选定的时间序列)
    • 一、Prometheus 联邦配置说明
    • 二、 配置 Prometheus
    • 三、实例 2 配置
    • 四、实例3配置
    • 4.实例1最终配置
    • Prometheus 联邦验证结果
    • 遇到的问题
        • Prometheus 联邦模式拉取不到各个节点的数据
          • 如何确认job为何值?
  • 推拉分析
    • 推【Prometheus Agent 模式】
    • 拉【联邦模式】

在这里插入图片描述

Prometheus Agent 模式-使用推送方式来监控

1.外部Prometheus配置

1.需要开放端口,在启动时,需要配置开放监听端口
--web.enable-lifecycle --config.file=/usr/local/prometheus/prometheus.yml --log.level=warn --storage.tsdb.path=/prometheus 
--web.listen-address=0.0.0.0:9090 
--storage.tsdb.retention=30d 
--web.enable-remote-write-receiver
2.添加prometheus启动参数

--enable-feature=remote-write-receiver, 用于启用 Prometheus 的远程写入接收器功能

该功能使 Prometheus 实例能够接收来自其他 Prometheus 实例或监控系统的数据,并将其写入本地时间序列数据库中。通过启用远程写入接收器,可以实现集中式监控数据收集和存储,从而简化监控数据管理和分析过程。

具体来说,启用此功能的目的包括:

  • 数据聚合和中心化 :通过远程写入接收器,多个 Prometheus实例或其他监控系统可以将监控数据发送到单个集中式存储位置。这样可以更轻松地聚合和管理监控数据,并为用户提供统一的监控数据视图。
  • 数据备份和冗余 :将监控数据发送到多个 Prometheus 实例或存储系统可以提供数据备份和冗余。如果一个实例或存储系统发生故障,仍然可以从其他实例或系统中检索数据,确保数据的可用性和持久性。
  • 跨数据中心或云环境的监控 :在分布式环境中,可能存在多个数据中心或云环境,各自运行着不同的 Prometheus实例。启用远程写入接收器可以轻松地将不同地理位置或不同云环境中的监控数据集中到单个存储位置,实现统一的跨数据中心或云环境的监控管理。
  • 实现监控数据的归档和长期存储 :集中式存储位置可以更好地支持监控数据的归档和长期存储需求。通过启用远程写入接收器,可以将监控数据发送到专门的存储系统或服务,实现对监控数据的有效管理和利用。
3.修改配置后重启prometheus即可
docker restart prometheus

2.各个节点的普米配置

1.修改prometheus.yml
vi prometheus.yml remote_write:- url: http://192.168.1.1:9090/api/v1/write# 标签替换配置write_relabel_configs:- source_labels: [instance]  # 要替换的源标签target_label: instance     # 替换后的目标标签replacement: "192.168.1.91"      # 替换后的值,可以使用正则表达式

192.168.1.1:9090 外部普米的地址

write_relabel_configs的作用:在 Prometheus 的配置文件中,用于远程写入(remote_write)时对标签进行替换。具体来说,它可以用于以下情况:

  • 标签重命名 :有时,当将监控数据写入到远程存储或其他 Prometheus 实例时,可能需要对标签进行重命名以符合目标系统的要求。例如,源系统使用的标签名与目标系统不一致,需要将其映射到目标系统所需的标签名上。
  • 标签值替换 :在某些情况下,需要修改标签的值。例如,源系统中的标签值包含了敏感信息或不合规定的内容,需要在写入到远程存储之前将其替换为合适的值
  • 标签值修正 :有时,需要根据特定的规则或逻辑来修正标签的值。例如,可能需要基于标签的某些特征来调整其值,以便更好地匹配目标系统的要求或进行数据清洗。 在上述配置中,source_labels 指定了要替换的源标签,target_label 指定了替换后的目标标签,replacement指定了目标标签的替换值。通过这种方式,可以灵活地定义不同的标签替换规则,以满足远程写入的需求。

测试是否成功

访问外部的普米节点:http://192.168.1.1:9090/,会有监控的指标信息,搜索查看即可

在这里插入图片描述

遇到问题
1.外部普米未开启远程写入功能
root@test:etc/prometheus# curl -X POST -d "metric_name{label1=\"value1\", label2=\"value2\"} 1234567890" http://192.168.1.1:9090/api/v1/write
remote write receiver needs to be enabled with --web.enable-remote-write-receiver

需要在prometheus启动参数 --enable-feature=remote-write-receiver

prometheus 联邦模式(联合允许 Prometheus 服务器从另一个 Prometheus 服务器抓取选定的时间序列)

官方文档:https://prometheus.io/docs/prometheus/latest/federation/

–enable-feature=native-histograms

联邦有不同的使用场景。通常,它用于实现可伸缩的Prometheus监控,或将一个服务相关指标从一个Prometheus拉取到另一个中
为了扩展单个Prometheus的采集能力和存储能力,Prometheus引入了联邦概念。多个Prometheus节点组成两级联邦结构,上面一层是联邦节点,负责定时从下面的节点获取数据并汇总,下面的Promethes可以负责不同区域/不同服务的数据采集。
Prometheus 是一个强大的监控平台,它是针对容器和微服务的开源监控预警工具,功能稳健,而且现在很多大厂都在使用一套监控系统(像网易、360等)

一、Prometheus 联邦配置说明

本次我以三台 Prometheus 实例进行简单演示:
实例1:10.xxx.xxx.91/32
实例2:10.xxx.xxx.96/32
实例3:10.xxx.xxx.94/32
说明:实例 1 为主,实例2、实例3为从,实例 1 会从实例 2 、实例3采集数据,并最终在实例 1 进行整合。

二、 配置 Prometheus

1、实例 1 配置
在 Prometheus 实例(主)配置 Prometheus 实例(从)

vim prometheus.yml- job_name: 'prometheus-federate-xahmat'honor_labels: truemetrics_path: '/federate'params:'match[]':- '{job=~".*"}'static_configs:- targets: ["公网IP:9090"]

params一些配置参考

    params:'match[]':    #match[]用指定查询条件,即只从其他Prometheus抓取符合条件的数据- '{job="prometheus"}'    #job用于匹配指定名称的job,这里表示抓取prometheus job对应的指标数据- '{__name__=~"job:.*"}'    #__name__表示匹配指定名称的指标数据,这里表示抓取以job开头的指标数据- '{job=~"node.*"}'    #抓取以node开头的job的指标

配置说明:

  • job_name:自定义工作名;
  • honor_labels:保持原标签不变;
  • metrics_path:匹URL(即配置完成后可通过此URL 来验证是否采集到实例 2 上的数据);
  • params:匹配(可进行正则匹配),下面的 {job=~“.*”} 采集所有来自实例 2的指标数据,根据实际情况自定义即可;
  • static_configs:即实例 2 的地址(IP+Port)这里的 IP 为实例 2 的公网 IP,如果有多个实例,依次往下添加即可。

三、实例 2 配置

实例 2 就是正常的配置,我这里配置的是blackbox-exporter的监控信息

 - job_name: 'blackbox-91'scrape_interval: 5smetrics_path: /probeparams:module: [icmp]static_configs:- targets:- '2.2.2.2'labels:# 节点用途,此处固定为nodeinstanceType: 'blackbox'targetType: 'icmp'zone: '测试'sourcePlace: '10.2.2.91'targetPlace: '2.2.2.2'- targets:- '3.3.3.3'labels:# 节点用途,此处固定为nodeinstanceType: 'blackbox'targetType: 'icmp'zone: '测试'sourcePlace: '10.2.2.91'targetPlace: '3.3.3.3'relabel_configs:- source_labels: ['__address__']target_label: __param_target- source_labels: ['__param_target']target_label: target- target_label: '__address__'replacement: '10.2.2.91:9115'- source_labels: ['__address__']target_label: instanceregex: '(.*):.*'replacement: '${1}'

四、实例3配置

 - job_name: 'blackbox-94'scrape_interval: 5smetrics_path: /probeparams:module: [icmp]static_configs:- targets:- '3.3.3.93'labels:# 节点用途,此处固定为nodeinstanceType: 'blackbox'targetType: 'icmp'zone: '生产机房'sourcePlace: '10.2.2.94'targetPlace: '3.3.3.93'- targets:- '10.2.2.93'labels:# 节点用途,此处固定为nodeinstanceType: 'blackbox'targetType: 'icmp'zone: '生产机房'sourcePlace: '10.2.2.94'targetPlace: '10.2.2.93'relabel_configs:- source_labels: ['__address__']target_label: __param_target- source_labels: ['__param_target']target_label: target- target_label: '__address__'replacement: '10.2.2.94:9115'- source_labels: ['__address__']

4.实例1最终配置

- job_name: 'federate'scrape_interval: 5shonor_labels: truemetrics_path: '/federate'params:'match[]':- '{job="blackbox-91"}'- '{job="blackbox-94"}'static_configs:- targets: ['10.2.2.91:60909','10.2.2.94:60909']

Prometheus 联邦验证结果

1、数据验证
在实例 1(主)上验证实例 2 的数据是否已经采集:

在这里插入图片描述

遇到的问题

Prometheus 联邦模式拉取不到各个节点的数据

Prometheus 联邦模式在使用过程中一直拉取不到节点的数据,经排查发现params:匹配的问题,最终改成抓取所有的可行,然后再根据具体的job配置这个参数

 params:'match[]':- '{job=~".*"}'
如何确认job为何值?

方式1:查看 Prometheus 目标页面:
在 Prometheus 的目标页面中,你可以查看当前由 Prometheus 监控的所有作业及其相关信息。你可以通过浏览器访问 Prometheus 的目标页面,通常 URL 是 http://<prometheus_ip>:<prometheus_port>/targets
在这里插入图片描述

方式2:检查 Prometheus 配置文件:
在 Prometheus 的配置文件中,通常会列出所有配置的作业及其详细信息。你可以查看 Prometheus 的配置文件(通常是 prometheus.yml)中的作业部分,以确认哪些作业正在被配置和监控。

在这里插入图片描述

推拉分析

推【Prometheus Agent 模式】

  • 网络问题 需要在各个节点配置外部prometheus 的地址 【可由页面下发外部普米的地址】
  • 只需要外部普米开放端口,各个分支不需要【配置开放监听端口0.0.0.0】
  • 需要在各个分支配置外部普米的地址
  • 外部的prometheus启动参数需要加–enable-feature=remote-write-receiver,用于启用 Prometheus 的远程写入接收器功能

拉【联邦模式】

  • 需要考虑每个分支采集的时间间隔
  • 中心节点配置所有采集点的IP 端口 ,手动配置,当分支IP改变后,需要手动调整
  • 各个节点prometheus需要开放端口,在启动时,需要配置开放监听端口 0.0.0.0

具体使用哪种模式根据市局情况而定

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

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

相关文章

HiveSQL一本通 - 案例实操

文章目录 0.HiveSQL一本通使用说明6.综合案例练习之基础查询6.1 环境准备创建数据表数据准备加载数据 6.2 简单查询练习1.查询姓名中带“山”的学生名单2.查询姓“王”老师的个数3.检索课程编号为“04”且分数小于60的学生的分数信息&#xff0c;结果按分数降序排列4.查询数学成…

vue.js——学习计划表

1&#xff09;准备工作 ①打开D:\vue\chapter02\ learning_schedule 目录&#xff0c;找到 index.html 文件。 在文件中引 入BootStrap 样式文件&#xff0c;具体代码如下 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8&qu…

【Linux】权限管理

文章目录 前言1.权限访问者的分类2.文件类型与访问权限3.文件权限值的表达方式4.文件访问权限的相关设置5.file指令6.目录权限理解与漏洞7.粘滞位的理解 前言 Linux下有两种用户&#xff1a;超级用户(root)和普通用户 超级用户&#xff1a;可以再linux系统下做任何事情&#x…

Vue3 + Vite + TS + Element-Plus + Pinia项目(3)--新建路由

1、在src文件夹下新建router文件夹后&#xff0c;创建index.ts文件 2、具体如下 import { createRouter, createWebHashHistory } from vue-routerconst router createRouter({history: createWebHashHistory(),routes: [{path: "/index",component: () > impor…

关于YOLOv9项目中使用已有模块自由改进的教程

专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;助力高效涨点&#xff01;&#xff01;&#xff01; 1. 文件说明 在YOLOv5-v9&#xff0c;模型的结构是以yaml文件的存储。我们可以在原有的yaml基础上增、减、改模块&#xff0c;创作我们自己的模型。 …

ASM四部曲之一:什么是ASM

文章目录 前言什么是.class文件什么是ASM概述作用域模型基于ASM的程序架构 ASM库结构 前言 本文翻译自ASM官方文档。 什么是.class文件 Java字节码文件&#xff08;.class&#xff09;是Java编译器编译Java源文件&#xff08;.java&#xff09;产生的目标文件。它是一种8位字…

基于SpringBoot+Layui的社区物业管理系统

项目介绍 社区物业管理系统是基于java程序开发,本系统分为业主和管理员两个角色 业主可以登陆系统,查看车位费用信息,查看物业费用信息,在线投诉,查看投诉,在线报修; 管理员可以车位收费信息,物业收费信息,投诉信息,楼宇信息,房屋信息,业主信息,车位信息,抄表信…

芯片设计工程师必备基本功——《Verilog+HDL应用程序设计实例精讲》

进入芯片行业需要学习哪些基本功呢&#xff1f;其实芯片设计工程师的技能是通过多年的经验学习的。在您开始作为芯片设计工程师工作之前&#xff0c;很难给出一个需要的全面的单一列表&#xff0c;也不可能学习所有内容。话虽如此&#xff0c;但您开始芯片设计师职业生涯时必须…

瑞萨杯(一)

基础信息 RA6M5&#xff1a;ARM V8架构&#xff0c;24MHz外置晶振&#xff0c;200MHz主频 SCI&#xff08;Serial Communications Interface&#xff09;&#xff0c;意为串行通信接口 参考链接&#xff1a; 【瑞萨RA系列FSP库开发】RASCKeil的环境搭建_瑞萨ra mdk-CSDN博客…

Web安全基础入门+信息收集篇

教程介绍 学习信息收集&#xff0c;针对域名信息,解析信息,网站信息,服务器信息等&#xff1b;学习端口扫描&#xff0c;针对端口进行服务探针,理解服务及端口对应关系&#xff1b;学习WEB扫描&#xff0c;主要针对敏感文件,安全漏洞,子域名信息等&#xff1b;学习信息收集方法…

【webpack】----错误解决【Cannot read properties of undefined (reading ‘tap‘)】

1. 报错场景 安装 webpack-obfuscator 后&#xff0c;进行 js 代码混淆编译的时候报错。 2. 报错截图 3. 错误原因 通常是由于版本不兼容或配置错误引起的。 4. 查询本地 webpack 版本 4.1 查询命令 npm 查询 npm view webpack versionyarn 查询 yarn info webpack ver…

2024年第14届生物医学工程与技术国际会议(ICBET 2024)即将召开!

2024年第14届生物医学工程与技术国际会议&#xff08;ICBET 2024&#xff09;将于2024年6月14日至17日在韩国首尔举行。 会议旨在汇聚来自世界各地的研究人员、工程师、院士和行业专业人士&#xff0c;展示他们在生物医学工程与技术领域的最新研究成果和进展。 会议以“生物医学…

欧拉法和Runge-Kutta(龙格-库塔)方法

Euler方法有各种格式&#xff0c;但其精度最高不超过2阶&#xff0c;一般难以满足实际计算的精度要求。因此&#xff0c;有必要构造精度更高的数值计算公式求解微分方程。Runge-Kutta方法就是一种高精度的经典的解常微分方程的单步方法。 下面是欧拉法例子&#xff1a; 参考链接…

【JavaEE -- 网络初识】

网络初识 1. 局域网和广域网1.1 局域网&#xff08;LAN&#xff09;1.2 广域网WAN 2. 网络通信基础2.1 IP地址2.2 端口号 3. 协议 -- 重点3.1 网络通信协议拆分成多层3.2 TCP/IP 五层网络协议 4. 封装和分用4.1 封装过程4.2 分用过程4.3 网络传输的数据单位 5. 网络编程中的客户…

Java基础-反射

文章目录 1.快速入门1.案例引入2.代码实例3.反射机制原理图 2.反射相关类1.反射获取类的成员代码实例结果 2.反射调用优化1.关闭访问检查2.代码实例 3.Class类1.类图2.基本介绍3.Class类常用方法代码实例结果 4.获取Class类对象代码实例结果 5.哪些类型有Class对象 4.类加载1.基…

学习刷题-13

3.23 hw机试【二叉树】 剑指offer32 剑指 offer32&#xff08;一、二、三&#xff09;_剑指offer 32-CSDN博客 从上到下打印二叉树I 一棵圣诞树记作根节点为 root 的二叉树&#xff0c;节点值为该位置装饰彩灯的颜色编号。请按照从 左 到 右 的顺序返回每一层彩灯编号。 输…

Spring Cloud Alibaba Sentinel 使用详解

一、Sentinel 介绍 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景&#xff1a; Sentinel 承接了阿里巴…

微服务(基础篇-003-Nacos集群搭建)

目录 Nacos集群搭建 1.集群结构图 2.搭建集群 2.1.初始化数据库 2.2.下载nacos 2.3.配置Nacos 2.4.启动 2.5.nginx反向代理 2.6.优化 视频地址&#xff1a; 06-Nacos配置管理-nacos集群搭建_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1LQ4y127n4?p29&…

Vue字符串里的中文数字转换为阿拉伯数字

js字符串里的汉字数字转化为数字 <template><view><view><view class"inpbox" ><textarea v-model"voiceMane" input"convert" ></textarea></view></view></view> </template> &…

SpringCloudAlibaba之Nacos Config

1、服务配置中心介绍 首先我们来看一下,微服务架构下关于配置文件的一些问题&#xff1a; 配置文件相对分散。在一个微服务架构下&#xff0c;配置文件会随着微服务的增多变的越来越多&#xff0c;而且分散在各个微服务中&#xff0c;不好统一配置和管理。配置文件无法区分环境…