【30天精通Prometheus:一站式监控实战指南】第13天:graphite_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们👋

  欢迎加入【30天精通Prometheus】专栏!📚 在这里,我们将探索Prometheus的强大功能,并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。🚀

  Prometheus是云原生和DevOps的核心监控工具,我们将从基础概念开始,逐步涵盖配置、查询、告警和可视化。💪

  在接下来的30天里,我们将解锁Prometheus的实战技巧,通过案例和分享,助你深入理解其工作原理。📆

  目标:30天后,你将熟练掌握Prometheus,为未来的项目挑战做好准备!💯

  这是一段精彩旅程,期待你的加入!🎉


文章目录

  • 一、graphite_exporter概述📘
  • 二、安装graphite_exporter💾
    • 2.1 访问graphite_exporter官方网站 🌐
    • 2.2 选择适合的版本🔍
    • 2.3 下载graphite_exporter⬇️
    • 2.4 解压安装包📂
    • 2.5 运行graphite_exporter🚀
  • 三、graphite_exporter指标和配置详解📖
    • 3.1 graphite_exporter_mapping
    • 3.2 graphite_exporter.service
  • 四、实战演练:生产环境搭建指南🔨
    • 4.1 创建普通用户管理graphite_exporter👤
    • 4.2 解压graphite_exporter.tar.gz📦
    • 4.3 将graphite_exporter集成到Prometheus配置中✂️
    • 4.4 更改graphite_exporter软件包名称✂️
    • 4.5 编辑graphite_exporter.service文件📝
    • 4.6 启动graphite_exporter.service🔌
    • 4.7 查看服务是否正常启动🔍
  • 相关资料下载地址📚

一、graphite_exporter概述📘

定义
  graphite_exporter 是一个开源的组件或服务,其设计目的是接收通过 Graphite plaintext 协议发送的监控数据,并将这些数据转换为 Prometheus 可以理解的格式。简单来说,graphite_exporter 充当了一个转换桥梁,使得原本使用 Graphite 数据格式的系统能够与 Prometheus 监控系统集成。

功能
  数据接收:graphite_exporter在指定的端口上监听传入的Graphite数据。当有其他系统或服务将监控数据发送到该端口时,graphite_exporter能够接收这些数据。

  数据转换:graphite_exporter能够将接收到的Graphite数据格式(通常是使用plaintext协议传输的以点(.)分隔的度量标准)转换为Prometheus期望的exposition format(即Prometheus可以理解和抓取的格式)。这样,原本只能发送Graphite格式数据的系统或服务就能与Prometheus兼容。

  指标映射:由于Graphite和Prometheus在指标命名和组织结构上有所不同,graphite_exporter通常提供映射功能,允许用户定义如何将Graphite的指标路径映射到Prometheus的指标名称和标签。这确保了转换后的数据在Prometheus中具有合适的结构和语义。

应用场景
  监控系统集成:当企业已经存在基于Graphite的监控系统,并希望将其集成到Prometheus中时,Graphite Exporter扮演了桥梁的角色。它允许企业保留现有的监控数据源,同时利用Prometheus的强大功能进行数据分析和告警。

  指标补充:在某些情况下,核心的Prometheus Exporter(如Node Exporter)可能不包含所有需要的监控指标。这时,Graphite Exporter可以用来补充这些缺失的指标,提供更全面的监控视图。

  迁移与过渡:对于正在从Graphite迁移到Prometheus的组织,Graphite Exporter可以作为一个临时的解决方案,在迁移过程中确保数据的连续性和可比性。

二、安装graphite_exporter💾

注意事项和常见问题
  1.环境配置:确保操作系统满足Graphite Exporter的要求。检查是否有足够的磁盘空间和内存。

  2.依赖安装:确认已安装所有必要的依赖项,如合适的Python版本(如果Graphite Exporter是用Python编写的)。根据安装指南,预先安装可能需要的库或工具。

  3.网络配置:确保服务器防火墙设置允许Graphite Exporter的监听端口(默认为9109)对外开放。如果Exporter将部署在云环境或受限制的网络中,请配置相应的网络策略和安全组规则。

  4.配置文件:仔细检查配置文件,确保所有参数都正确设置,特别是映射关系(如果需要)。验证配置中的端口号、地址和其他相关设置是否与现有环境相匹配。

  5.权限问题:确保运行Graphite Exporter的用户有足够的权限来访问必要的文件和目录。如果Exporter需要监听低于1024的端口,可能需要以root权限运行。

2.1 访问graphite_exporter官方网站 🌐

  • 打开浏览器,访问graphite_exporter的官方下载页面,通常位于Prometheus官方网站的子目录下:https://github.com/prometheus/graphite_exporter/releases

2.2 选择适合的版本🔍

  • 在下载页面,你将看到不同操作系统的graphite_exporter二进制包。根据你的操作系统选择适合的版本。例如,如果你使用的是Linux 64位系统,就选择graphite_exporter-0.15.0.linux-amd64.tar.gz(其中x.x.x是版本号)。

2.3 下载graphite_exporter⬇️

  • 点击所选版本的下载链接,将graphite_exporter的二进制包下载到你的本地计算机。

2.4 解压安装包📂

  • 将下载的graphite_exporter压缩包解压到你想要安装的目录。你可以使用命令行工具(如tar)来完成这个步骤。解压后,你将看到一个名为graphite_exporter-x.x.x.linux-amd64的目录,其中包含graphite_exporter的二进制文件和其他相关文件。
tar -xzf graphite_exporter-x.x.x.linux-amd64.tar.gz

2.5 运行graphite_exporter🚀

  • 进入解压后的目录,并运行graphite_exporter服务器。在Linux下,你可以使用如下命令。如果一切正常,你应该能在终端看到graphite_exporter的启动日志。
cd graphite_exporter-x.x.x.linux-amd64

./graphite_exporter

三、graphite_exporter指标和配置详解📖

  • 黑色:作为默认文本颜色。
  • 绿色:表示常规配置项
  • 橙色:表示具有互斥参数的配置项 / 建议开启(根据自己的场景确定需求)
  • 蓝色:不重要的配置项 / 建议不开启
  • 红色:表示关键信息和警告 / 最好开启

注意:

  • 1.相关参数配置建议仅供参考,具体要以自己生产的实际需要自行配置。
  • 2.以下配置参数介绍是基于graphite_exporter-0.15.0.linux-amd64版本说明的,其它版本会有不同。

3.1 graphite_exporter_mapping

# 示例文件
mappings:
- match: test.dispatcher.*.*.*
  name: dispatcher_events_total
  labels:
    action: $2
    job: test_dispatcher
    outcome: $3
    processor: $1
    
- match: '*.signup.*.*'
  name: signup_events_total
  labels:
    job: ${1}_server
    outcome: $3
    provider: $2
    
- match: 'servers\.(.*)\.networking\.subnetworks\.transmissions\.([a-z0-9-]+)\.(.*)'
  match_type: regex
  name: 'servers_networking_transmissions_${3}'
  labels: 
    hostname: ${1}
    device: ${2}
  • mappings
    • match: test.dispatcher.*.*.
        用于匹配传入的度量名称。它可以是简单的通配符模式(如.signup..)或使用正则表达式(如servers.(.*).networking.subnetworks.transmissions.([a-z0-9-]+).(.*))。在此示例中,匹配以test.dispatcher开头的度量名,后面跟着任意三个由点分隔的组件。
    • name
        重新映射后的度量名称。可以在其中插入变量(如${1}, ${2}, ${3}等),这些变量对应于match模式中捕获的组。在这个例子表示所有匹配的度量都将被重命名为dispatcher_events_total。
    • labels
        一个键值对的集合,用于定义与度量相关联的标签。这些标签提供了关于度量的额外上下文信息。标签的值也可以是变量,这些变量根据match模式中的捕获组进行替换。
      • action: $2:将match模式中的第二个捕获组(在这里是*)作为action标签的值。
      • job: test_dispatcher:为所有匹配的度量添加一个固定的job标签,值为test_dispatcher。
      • outcome: $3 和 processor: $1:类似地,它们分别使用match模式中的第三和第一个捕获组作为标签的值。

  • 例如将指标转换为 Prometheus 指标,遵循:
test.dispatcher.FooProcessor.send.success
  => dispatcher_events_total{processor="FooProcessor", action="send", outcome="success", job="test_dispatcher"}

foo_product.signup.facebook.failure
  => signup_events_total{provider="facebook", outcome="failure", job="foo_product_server"}

test.web-server.foo.bar
  => test_web__server_foo_bar{}

servers.rack-003-server-c4de.networking.subnetworks.transmissions.eth0.failure.mean_rate
  => servers_networking_transmissions_failure_mean_rate{device="eth0",hostname="rack-003-server-c4de"}

3.2 graphite_exporter.service

  • - -web.telemetry-path=“/metrics”
      指定Prometheus抓取metrics的路径。默认情况下,Prometheus会在/metrics路径上抓取数据,但你可以通过此参数更改它。
  • - -graphite.listen-address=:9109
      设置graphite_exporter监听Graphite度量数据的地址和端口。在这个例子中,它监听所有IPv4和IPv6地址的9109端口。你可以更改地址和端口以适应你的网络环境。
  • - -graphite.mapping-config=“”
      通过这个参数,你可以指定一个映射配置文件,定义如何将接收到的Graphite度量指标映射到Prometheus的度量指标。如果你不提供这个文件,graphite_exporter将使用默认的映射规则。
  • - -graphite.sample-expiry=5m
      定义接收到的Graphite度量样本在内存中未被Prometheus抓取之前可以保留多长时间。超过设定的时间后,这些样本将被丢弃。在这个例子中,样本的过期时间设置为5分钟。
  • - -[no-]graphite.mapping-strict-match
      如果启用此选项,只有当Graphite度量指标与映射配置中的某个规则完全匹配时,才会被导出到Prometheus。如果没有匹配的规则,该度量指标将被忽略。
  • - -graphite.cache-size=1000
      用于设置存储接收到的Graphite度量数据的内部缓存的大小,在这个例子中,缓存大小设置为1000个样本。
  • - -graphite.cache-type=lru
      设置缓存类型。LRU(Least Recently Used)是一种常见的缓存替换策略,当缓存满时,会淘汰最近最少使用的数据。
  • - -debug.dump-fsm=“”
      用于调试目的。如果提供了文件路径,exporter会将有限状态机(Finite State Machine)的当前状态定期转储到该文件,有助于开发者理解exporter的内部状态。
  • - -[no-]check-config
      如果启用此选项,exporter将在启动时检查配置文件的正确性,并在发现错误时退出。
  • - -[no-]web.systemd-socket
      如果你的服务是通过systemd的socket激活功能管理的,可以启用这个选项。这样,graphite_exporter将不会自己监听端口,而是使用由systemd提供的socket。
  • - -web.listen-address=:9108
      设置exporter的HTTP服务监听的地址和端口,Prometheus将从这个地址抓取metrics数据。
  • - -web.config.file=“”
      指定Web服务的配置文件路径。

四、实战演练:生产环境搭建指南🔨

4.1 创建普通用户管理graphite_exporter👤

useradd deploy

4.2 解压graphite_exporter.tar.gz📦

注意:
  我的是x86,所以使用graphite_exporter-0.15.0.linux-amd64.tar.gz,您可以使用uname -a命令查看系统架构

tar xvf graphite_exporter-0.15.0.linux-amd64.tar.gz -C /home/deploy/

4.3 将graphite_exporter集成到Prometheus配置中✂️

  将graphite_exporter集成到Prometheus配置中,确保数据能够正常采集。编辑Prometheus的配置文件(通常是prometheus.yml),在scrape_configs部分添加graphite_exporter的配置。告诉Prometheus将采集localhost:9108的数据。

  - job_name: 'graphite_exporter'
    static_configs:
      - targets:
      - targets: ["localhost:9108"]
        labels:
          exporter: graphite_exporter

4.4 更改graphite_exporter软件包名称✂️

mv graphite_exporter-0.15.0.linux-amd64 /home/deploy/graphite_exporter

4.5 编辑graphite_exporter.service文件📝

cat > /etc/systemd/system/graphite_exporter.service <<EOF
[Unit]
Description=Graphite Exporter
After=network.target

[Service]
Type=simple
User=deploy
Group=deploy
ExecStart=/home/deploy/graphite_exporter/graphite_exporter \
--graphite.mapping-config=/home/deploy/graphite_exporter/graphite_exporter_mapping \
--graphite.sample-expiry=5m \
--graphite.mapping-strict-match \
--graphite.listen-address=:9109 \
--web.listen-address=:9108
ExecReload=/bin/kill -HUP
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

4.6 启动graphite_exporter.service🔌

sudo systemctl daemon-reload

sudo systemctl enable --now graphite_exporter.service

4.7 查看服务是否正常启动🔍

# 查看service服务是否启动
sudo systemctl status graphite_exporter.service

# 查看端口是否存在
sudo ss -ntulp | grep -E '9108|9109'

相关资料下载地址📚

  • 官方文档:https://prometheus.io/docs/introduction/overview/
  • 下载地址:https://github.com/prometheus/prometheus/releases/tag/v2.52.0
  • 文档地址:https://prometheus.io/docs/prometheus/latest/installation/
  • 离线包下载链接:https://pan.baidu.com/s/1ANF_AlFnM5_FMIbKBuzBmg 提取码:yqpt

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

企业im即时通讯WorkPlus私有化部署适配国产信创环境

在信息化时代&#xff0c;高效的沟通和协作对于企业的运营至关重要。企业IM即时通讯平台提供了一种便捷、实时的沟通工具&#xff0c;旨在改善企业的内部和外部沟通效率。然而&#xff0c;随着企业对数据安全性和隐私保护的要求不断提高&#xff0c;许多企业开始选择私有化部署…

【Qt知识】disconnect

在Qt框架中&#xff0c;disconnect函数用于断开信号与槽之间的连接。当不再需要某个信号触发特定槽函数时&#xff0c;或者为了防止内存泄漏和重复执行问题&#xff0c;你可以使用disconnect来取消这种关联。disconnect函数的基本用法可以根据不同的需求采用多种形式&#xff0…

【ORB_SLAM系列3】—— 如何在Ubuntu18.04中使用自己的单目摄像头运行ORB_SLAM3(亲测有效,踩坑记录)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、ORB_SLAM3源码编译二、ORB_SLAM3实时单目相机测试1. 查看摄像头的话题2. 运行测试 三. 运行测试可能的报错1. 报错一(1) 问题描述(2) 原因分析(3) 解决 2. …

Windows下如何把Oracle从C盘整体迁移到D盘?

&#xff08;一&#xff09;写这篇文章的起因 这篇文章适合刚接触的技术小白follow操作&#xff0c;整理文章不易&#xff0c;大家多多点赞转发 起因是昨天有会员在群里发问&#xff0c;客户要把Oracle整个目录从C盘挪到D盘怎么弄 客户那边的人把Oracle整个程序数据文件都安装…

使用 Kali Linux 实现 Smurf 攻击

一、介绍 Smurf攻击是一种分布式拒绝服务&#xff08;DDoS&#xff09;攻击&#xff0c;利用IP协议中的ICMP&#xff08;Internet Control Message Protocol&#xff09;请求和网络的广播特性&#xff0c;使目标系统被大量ICMP回复包淹没&#xff0c;从而导致系统无法正常提供…

ZDH-数据管理模块

目录 主题 项目源码 预览地址 安装包下载地址 数据管理服务 数据资源管理 数据资源权限 数据资源血缘 总结 感谢支持 主题 本篇文章主要介绍ZDH-数据管理服务及应用场景 项目源码 zdh_web: GitHub - zhaoyachao/zdh_web: 大数据采集,抽取平台 预览地址 后台管理…

【C++】类和对象——构造和析构函数

目录 前言类的六个默认构造函数构造函数1.构造函数的概念2.构造函数的特性 初始化列表1.构造函数整体赋值2.初始化列表 析构函数1.析构函数的概念2.析构函数的特性 前言 类和对象相关博客&#xff1a;【C】类和对象   我们前面一个内容已经讲了关于类好对象的初步的一些知识&…

绿联 安装MariaDB数据库用于Seatable服务

绿联 安装MariaDB数据库用于Seatable服务 1、镜像 mariadb:latest 2、安装 2.1、基础设置 重启策略&#xff1a;容器退出时总是重启容器。 2.2、网络 网络选择桥接(bridge)。 2.3、存储空间 装载路径/var/lib/mysql不可变更。 2.4、端口设置 容器端口3306&#xff0c;本…

7. MySQL 视图、索引

文章目录 【 1. 视图 View 】1.1 视图原理1.2 创建视图 CREATE VIEW1.2.1 创建基于单表的视图1.2.2 创建基于多表的视图 1.3 查看视图1.3.1 查看视图的内容1.3.2 查看视图的详细信息 1.4 修改视图 ALTER VIEW1.4.1 修改视图内容1.4.2 修改视图名称 1.5 删除视图 DORP VIEW 【 2…

Ansys Mechanical|组装 External Mechanical Model

Assembling Finite Element Models 上文中介绍了如何导入外部模型并将其组合到单个模型中的示例。 如果要将外部模型与Workbench环境中已有的一个或多个模型组合在一起&#xff0c;该如何操作&#xff1f;本文将介绍这个工作流程。 Ansys Mechanical支持Mechanical Model和Ex…

移动系统编程-安装和运行Ionic应用程序 (Installation and Running Ionic Apps)

安装 (Installation) 假设您已经安装了Node.js和Angular&#xff0c;您可以使用以下命令安装Ionic&#xff1a; npm install -g ionic/cli您也可以不使用CLI安装Ionic&#xff0c;但如果您使用的是最新版本的Cordova&#xff0c;这样做可能会导致版本不匹配&#xff0c;不推荐…

用幻灯片讲解C++中的C语言风格数组

用幻灯片讲解C中的C语言风格数组 1.栈内存中的C风格数组 糟糕的可用性&#xff0c;但你将在遗留代码中看到它们。相同类型的对象块。大小必须是常量表达式。第一个元素的索引为0&#xff0c;即数组索引从0开始。 注意一下数组的初始化&#xff0c;使用了C11标准之后的统一初始…

回溯算法 -- 77. 组合

目录 一.题目描述 二.解题思路 三.回溯三部曲 3.1确定递归函数的返回值以及参数 3.2回溯算法的终止条件 3.3确定单层循环搜索逻辑 四.具体的代码 一.题目描述 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案…

软件开发整体介绍

黑马程序员瑞吉外卖 文章目录 一、软件开发流程二、角色分工三、软件环境 一、软件开发流程 二、角色分工 三、软件环境

MySQL—函数—流程控制函数(基础)

一、引言 接下来&#xff0c;我们就进入函数的最后一个部分&#xff1a;流程函数。而流程控制函数在我们的日常开发过程是很有用的。 流程控制函数在我们 sql 语句当中&#xff0c;经常用来实现条件的筛选&#xff0c;从而提高语句的一个执行效率。 我们主要介绍以下4个流程控…

第十五课,海龟画图:抬笔与落笔函数、画曲线函数

一&#xff0c;turtle.penup()和turtle.pendown()&#xff1a;抬起与落下画笔函数 当使用上节课学习的这个turtle.forward()&#xff1a;画笔前进函数时&#xff0c;画笔会朝着当前方向在画布上留下一条指定&#xff08;像素&#xff09;长度的直线&#xff0c;但你可能发现&a…

自动微分技术在 AI for science 中的应用

本文简记我在学习自动微分相关技术时遇到的知识点。 反向传播和自动微分 以 NN 为代表的深度学习技术展现出了强大的参数拟合能力&#xff0c;人们通过堆叠固定的 layer 就能轻松设计出满足要求的参数拟合器。 例如&#xff0c;大部分图神经网络均基于消息传递的架构。在推理…

政安晨【零基础玩转各类开源AI项目】:解析开源项目的论文:Physical Non-inertial Poser (PNP)

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 零基础玩转各类开源AI项目 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 本文解析的原始论文为&#xff1a;https://arxiv.org/…

有容微ASW3642 HDMI或者DP双向切换器,二进一出,一进二出支持4K60HZ分辨率

ASW3642描述&#xff1a; ASW3642 是一款 12 通道 1:2 或 2:1 双向多路复 用器/ 多路解复用器。 ASW3642 可由 2.6V 至 4.5V 的电源供电&#xff0c;适用于电池供电的应用。该器 件的导通电阻&#xff08;R ON &#xff09;较低并且 I/O 电容较小&#xff0c; 能…