当前位置: 首页 > news >正文

24.1 prometheus-exporter管理

本节重点介绍 :

  • exporter 流派

    • 必须和探测对象部署在一起的
    • 1对多的远端探针模式
  • exporter管控的难点

    • 1对1 的exporter 需要依托诸如 ansible等节点管理工具 ,所以应该尽量的少
  • 1对1的exporter改造成探针型的通用思路

exporter 流派

必须和探测对象部署在一起的

  • 可以理解为1对1 的sidecar模式
  • 典型的例子如
    • node_exporter
    • process-exporter

1对多的远端探针模式

  • 典型的例子如
    • blackbox_exporter
    • redis_exporter
    • snmp_exporter

exporter管控的难点

  • exporter的数量应该尽量少

1对1 的exporter 管理上的问题

  • 1对1 的exporter的安装和管理是很大的问题
  • 需要依托诸如 ansible等节点管理工具

探针型exporter的优点

  • 只需要管理有限的探针节点
  • 被探测的目标可以通过http参数传递给探针

比如redis-exporter的多实例配置

  - job_name: 'redis_exporter'static_configs:- targets:- redis://redis01:6379- redis://redis02:6379metrics_path: /scraperelabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: redis_exporter01:9121

比如改造后的mysqld-exporter 多实例配置

- job_name: 'mysql_exporter'metrics_path: /probestatic_configs:- targets:- user1:pass1@tcp(mysql1:port1)/- user2:pass2@tcp(mysql2:port2)/relabel_configs:- source_labels: [__address__]target_label: __param_dsn- source_labels: [__param_dsn]target_label: instanceregex: .*tcp\((.*?)\).*replacement: $1action: replace- target_label: __address__replacement: localhost:9104 # 修改后的mysqld_exporter地址

将所有 1对1的exporter改造成探针型的收益

  • 只要有维护少量的探针进程
  • 所有的target都由prometheus通过http传参调用 exporter
  • target的更新只需要在prometheus侧变更即可,可以和服务发现联动

1对1的exporter改造成探针型的通用思路

  • 在8.3 我们修改mysqld_exporter源码 ,改造成类似blackbox的探针型,实现一对多探测

1. 添加/probe 探针处理handler ProbeHandler

	http.HandleFunc("/probe", func(w http.ResponseWriter, r *http.Request) {ProbeHandler(w, r)})

2. 编写具体的ProbeHandler

  • 解析http 中的target参数
  • 用target初始化对应的exporter对象
  • 初始化prometheus http Handler
func ProbeHandler(w http.ResponseWriter, r *http.Request) {target := r.URL.Query().Get("target")mysqlExp := New(r.Context(), dsn, metrics, scrapers, logger)registry := prometheus.NewRegistry()registry.MustRegister(mysqlExp)h := promhttp.HandlerFor(registry, promhttp.HandlerOpts{})h.ServeHTTP(w, r)
}

3. 传参时调用对应exporter对象的 collect方法

  • 通常是创建一个连接对象
  • 然后执行 诸如info命令的采集任务即可

本节重点介绍 :

  • exporter 流派

    • 必须和探测对象部署在一起的
    • 1对多的远端探针模式
  • exporter管控的难点

    • 1对1 的exporter 需要依托诸如 ansible等节点管理工具 ,所以应该尽量的少
  • 1对1的exporter改造成探针型的通用思路

http://www.lryc.cn/news/455324.html

相关文章:

  • 【Arduino IDE安装】Arduino IDE的简介和安装详情
  • 『网络游戏』自适应制作登录UI【01】
  • 用Manim简单解释奇异值分解(SVD)和图像处理方面的应
  • 红外变电站分割数据集,标注为json格式,总共有5类,避雷器(289张),绝缘子(919张),电流互感器(413张),套管(161张),电压互感器(153张)
  • HBase 性能优化 详解
  • 杭电2041-2050
  • Ambari搭建Hadoop集群 — — 问题总结
  • 如何用python抓取豆瓣电影TOP250
  • 鸽笼原理与递归 - 离散数学系列(四)
  • Ubuntu 20.04常见配置(含yum源替换、桌面安装、防火墙设置、ntp配置)
  • AI学习指南深度学习篇-生成对抗网络的基本原理
  • 什么是网络安全
  • Redis list 类型
  • Linux更改固定IP地址
  • Qt+大恒相机回调图片刷新使用方式
  • Docker 环境下 PostgreSQL 监控实战:从 Exporter 到 Prometheus 的部署详解
  • 构建带有调试符号的srsRAN 4G
  • 算法题总结(十)——二叉树上
  • 【MySQL】MySQL 数据库主从复制详解
  • 一种格式化printf hex 数据的方法
  • 在LabVIEW中如何读取EXCEL
  • 布匹瑕疵检测数据集 4类 2800张 布料缺陷 带标注 voc yolo
  • 灵动微高集成度电机MCU单片机
  • 陪护小程序|护理陪护系统|陪护小程序成品
  • 【JVM】基础篇
  • 软件测试工程师 朝哪里进阶?
  • Obsidian Plugin Release Pre-check
  • Unity中实现预制体自动巡逻与攻击敌人的完整实现指南
  • OpenJudge | Shortest Prefixes
  • 速盾:高防服务器是如何防御CC攻击的?