大数据-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 捕获到所有任务数据,并提升监控的覆盖率和有效性。

相关推荐
huaqianzkh17 分钟前
了解Hadoop:大数据处理的核心框架
大数据·hadoop·分布式
Kika写代码42 分钟前
【Hadoop】【hdfs】【大数据技术基础】实验三 HDFS 基础编程实验
大数据·hadoop·hdfs
我的K84091 小时前
Flink整合Hive、Mysql、Hbase、Kafka
hive·mysql·flink
okmacong3 小时前
2024.11.12_大数据的诞生以及解决的问题
大数据
Java资深爱好者5 小时前
数据湖与数据仓库的区别
大数据·数据仓库·spark
heromps5 小时前
hadoop报错找不到主类
大数据·hadoop·eclipse
未 顾7 小时前
day12:版本控制器
大数据·elasticsearch·搜索引擎
CherishTaoTao7 小时前
Git别名设置
大数据·git
Dreams°1238 小时前
【大数据测试HBase数据库 — 详细教程(含实例与监控调优)】
大数据·功能测试·单元测试