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

embedded/2024/11/13 15:57:38/

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

目前已经更新到了:

  • 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 已经提供好了:

https://prometheus.io/download/

页面需要往下滚动,找到对应的内容:
在这里插入图片描述

下载配置

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

执行结果如下图所示:
在这里插入图片描述

解压配置

cd /opt/software
tar -zxvf node_exporter-1.8.2.linux-amd64.tar.gz
mv node_exporter-1.8.2.linux-amd64 ../servers/

部分内容如下图所示:
在这里插入图片描述

启动服务

 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 适用于短期任务,不建议用于长期任务监控,否则可能造成数据过时以及系统负担。

拓扑图

对应的拓扑图如下:
在这里插入图片描述

官方地址

https://prometheus.io/download/#pushgateway/

对应的内容如下图所示:
在这里插入图片描述

下载配置

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

执行结果如下图所示:
在这里插入图片描述

解压配置

cd /opt/software
tar -zxvf pushgateway-1.10.0.linux-amd64.tar.gz
mv pushgateway-1.10.0.linux-amd64 ../servers/

对应的内容如下所示:
在这里插入图片描述

配置服务

cd /opt/servers/pushgateway-1.10.0.linux-amd64

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

cp pushgateway ../prometheus-2.53.2.linux-amd64/
chmod +x pushgateway

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

vim prometheus.yml

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

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


http://www.ppmy.cn/embedded/137286.html

相关文章

云原生安全解决方案NeuVector 5.X部署实践

云原生安全解决方案NeuVector 5.X部署实践 NeuVector 5.X支持部署到docker、Rancher、Openshift以及各种公有云平台的Kubernetes集群环境上,支持YAML、Operator、helm等安装方式。本文实践在本地Kubernetes集群上部署NeuVector 5.X。 1. 部署方式概述 YAML方式部…

【前端】JavaScript高级教程:线程机制与事件机制

文章目录 1 进程与线程2 浏览器内核3 定时器引发的思考4 JS是单线程的5 事件循环模型6 H5 Web Workers6.1 Web Workers_测试16.2 worker.js6.3 Web Workers_测试2 1 进程与线程 进程:程序的一次执行,它占有一片独有的内存空间。线程:CPU的基…

Unity3D UI 双击和长按

Unity3D 实现 UI 元素双击和长按功能。 UI 双击和长按 上一篇文章实现了拖拽接口,这篇文章来实现 UI 的双击和长按。 双击 创建脚本 UIDoubleClick.cs,创建一个 Image,并把脚本挂载到它身上。 在脚本中,继承 IPointerClickHa…

第二章springboot核心配置与注解

本章学习的目标 2.1 全局配置文件 全局配置文件能对默认配置值进行修改,下面介绍两种全局配置文件: 2.1.1 application.properties配置文件 springboot项目启动时会自动启动这个配置文件,我们可以在这个文件中配置相关属性,&…

minio 分布式

方案设计 需要5台服务器,一台nginx用作分发请求,4台minio服务器,每个minio服务器上至少2个盘。在这个方法中,我使用了lvm的缓存,在同种固态盘的情况下,可以使读性能提高数倍到十倍,使写性能提高…

音视频入门基础:MPEG2-TS专题(4)——使用工具分析MPEG2-TS传输流

一、引言 有很多工具可以分析MPEG2-TS文件/流,比如Elecard Stream Analyzer、PROMAX TS Analyser、easyice等。下面一一对它们进行简介(个人感觉easyice功能更强大一点)。 二、Elecard Stream Analyzer 使用Elecard Stream Analyzer工具可以…

【专题】2024年全球生物医药交易报告汇总PDF洞察(附原数据表)

原文链接:https://tecdat.cn/?p38191 在当今复杂多变的全球经济环境下,医药行业正面临着诸多挑战与机遇。2024 年,医药行业的发展态势备受关注。 一方面,全球生物医药交易活跃,2021 - 2023 年的交易中,已…

简单的TCP程序

文章目录 3. TCP程序3.1 接口3.1.1 inet_aton()3.1.2 listen()3.1.3 现在的服务器代码3.1.4 accept()3.1.5 inet_ntop()3.1.6 tcpClient.cc 3.2 并发的 tcpServer3.2.1 多进程版本3.2.2 多线程版本3.2.3 线程池版本 3.3 继续完善3.3.1 增加客户端重连功能3.3.2 守护进程 3. TCP…