大数据-218 Prometheus 插件 exporter 与 pushgateway 配置使用 监控服务 使用场景

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(已更完)
  • Spark(已更完)
  • Flink(已更完)
  • ClickHouse(已更完)
  • Kudu(已更完)
  • Druid(已更完)
  • Kylin(已更完)
  • Elasticsearch(已更完)
  • DataX(已更完)
  • Tez(已更完)
  • 数据挖掘(已更完)
  • Prometheus(正在更新...)

章节内容

上节我们完成了如下的内容:

  • Prometheus 安装配置
  • 启动服务
  • 监控服务

官方网站

目前我们需要安装 exporter,我们的机器是 Rocky Linux,当然其他类 CentOS 也可以,我们需要用 node_exporter 来提供监控。

这里 Prometheus 已经提供好了:

shell 复制代码
https://prometheus.io/download/

页面需要往下滚动,找到对应的内容:

下载配置

shell 复制代码
cd /opt/software
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz

执行结果如下图所示:

解压配置

shell 复制代码
cd /opt/software
tar -zxvf node_exporter-1.8.2.linux-amd64.tar.gz
mv node_exporter-1.8.2.linux-amd64 ../servers/

部分内容如下图所示:

启动服务

shell 复制代码
 cd /opt/servers/node_exporter-1.8.2.linux-amd64
 ./node_exporter

执行结果如下图所示:

访问服务

我们访问刚才的 targets,可以看到 h121-wzk-icu 已经 UP 了:

PushGateway

基本介绍

Prometheus Pushgateway 是一个用于帮助 Prometheus 监控短期任务和批处理任务的组件。在 Prometheus 的原生拉取模型中,它通常通过定期从各服务中"拉取"指标。然而,对于一些存在于短时间内的工作任务或批处理任务,比如脚本或批处理作业,它们可能在 Prometheus 下一次拉取前就已经完成并消失了,这种模型不适用。因此,Prometheus 提供了 Pushgateway 作为这些短暂任务的解决方案。

综上,PushGateway 是 Prometheus 生态中的一个重要的工具,使用它的主要原因是:

  • Prometheus 采用 PULL 模式,可能由不再一个子网或者防火墙的原因,导致 Prometheus无法直接拉去各个 Target 数据
  • 在监控业务数据的时候,需要将不同数据汇总,由 Prometheus 统一收集。

由于以上的原因,不得不使用 PushGateway,但在使用之前,有必要了解一下弊端:

  • 将多个节点数据汇总到 PushGateway,如果它挂了,受到影响节点比多个 Target 大。
  • Prometheus 拉去状态 UP 只针对 PushGateway,无法做到对每个节点都生效
  • PushGateway 可以持久化推送给它的所有监控数据

Pushgateway 允许应用程序将数据主动推送到一个中介,之后 Prometheus 可以从中提取数据并存储到时间序列数据库中。这对短期的、瞬态的批处理任务特别有用,例如:

  • 定期运行的批处理任务(如夜间作业)
  • 编译和打包任务
  • 自动化的备份任务
  • 临时的数据库迁移脚本等

因此,即使你的监控已经下线,Prometheus 还会拉取旧的监控数据,需要手动清理 PushGateway 不要的数据。

工作流程

  • 任务或批处理作业启动:任务或作业在运行过程中生成指标数据。
  • 推送到 Pushgateway:在作业结束时,作业将指标推送到 Pushgateway。
  • Prometheus 拉取数据:Prometheus 定期从 Pushgateway 拉取数据,记录在数据库中。
  • 显示在监控系统:指标数据可以在 Grafana 等监控系统中进行展示和分析。

注意事项

  • 持久性问题:Pushgateway 默认不持久化数据,重启后数据会丢失。可以使用磁盘持久化来保存指标。
  • 数据过时问题:Pushgateway 适合单次批量数据推送,而不是长期的服务健康监测。如果批处理任务没有新的数据推送,Prometheus 也不会自动将旧数据删除,可能会导致监控面板显示过时数据。因此,推荐通过 push_time_seconds 标签来跟踪数据的推送时间。
  • 避免泛用:Pushgateway 适用于短期任务,不建议用于长期任务监控,否则可能造成数据过时以及系统负担。

拓扑图

对应的拓扑图如下:

官方地址

shell 复制代码
https://prometheus.io/download/#pushgateway/

对应的内容如下图所示:

下载配置

shell 复制代码
cd /opt/software
wget https://github.com/prometheus/pushgateway/releases/download/v1.10.0/pushgateway-1.10.0.linux-amd64.tar.gz

执行结果如下图所示:

解压配置

shell 复制代码
cd /opt/software
tar -zxvf pushgateway-1.10.0.linux-amd64.tar.gz
mv pushgateway-1.10.0.linux-amd64 ../servers/

对应的内容如下所示:

配置服务

shell 复制代码
cd /opt/servers/pushgateway-1.10.0.linux-amd64

我们需要将 pushgateway 放置到 Prometheus 中:

shell 复制代码
cp pushgateway ../prometheus-2.53.2.linux-amd64/
chmod +x pushgateway

此外,我们还需要修改配置文件:

shell 复制代码
vim prometheus.yml

将 pushgateway 配置进去:(如果你之前跟着上文配置了, 这里就不需要了,已经配置过了)

yaml 复制代码
  - job_name: "wzk-icu-grafana"
    static_configs:
      - targets: ["h121.wzk.icu:9091"]

对应的内容如下所示:

使用场景

  • CI/CD 流程中的指标监控:Pushgateway 可以在 Jenkins、GitLab CI 等工具的管道中用于推送编译、测试、发布的状态数据。
  • 自动化脚本和批处理任务:自动化作业完成后推送成功或失败状态,便于实时跟踪系统作业执行情况。
  • 批量数据处理作业:批处理工作如 Spark、Flink 等完成特定任务后,将关键的作业数据推送到 Pushgateway,确保执行的详细状态能够被监控到。

Pushgateway 是 Prometheus 中一个重要的扩展工具,适合短期作业和批处理任务的监控。它不适合长期监控使用,但在大规模数据处理或 DevOps 场景中,Pushgateway 可以确保 Prometheus 捕获到所有任务数据,并提升监控的覆盖率和有效性。

相关推荐
字节跳动数据平台4 小时前
代码量减少 70%、GPU 利用率达 95%:火山引擎多模态数据湖如何释放模思智能的算法生产力
大数据
得物技术6 小时前
深入剖析Spark UI界面:参数与界面详解|得物技术
大数据·后端·spark
大大大大晴天7 小时前
Flink生产问题排障-HBase NotServingRegionException
flink·hbase
武子康7 小时前
大数据-238 离线数仓 - 广告业务 Hive分析实战:ADS 点击率、购买率与 Top100 排名避坑
大数据·后端·apache hive
武子康1 天前
大数据-237 离线数仓 - Hive 广告业务实战:ODS→DWD 事件解析、广告明细与转化分析落地
大数据·后端·apache hive
大大大大晴天1 天前
Flink生产问题排障-Kryo serializer scala extensions are not available
大数据·flink
武子康3 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
肌肉娃子4 天前
20260227.spark.Spark 性能刺客:千万别在 for 循环里写 withColumn
spark
武子康4 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet