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

【云原生监控】PushGateway:打通监控数据“最后一公里”的桥梁

1. 为什么需要PushGateway在云原生监控体系中Prometheus的拉取模式Pull是主流设计。但实际生产环境中我们经常会遇到这些头疼的场景某台服务器躲在防火墙后面出不来某个临时任务运行5分钟就消失某个边缘设备没有固定IP地址。这时候Prometheus的定时抓取机制就失效了——就像快递员找不到收件人地址包裹自然无法送达。PushGateway就像个24小时营业的快递驿站。当监控对象无法被直接访问时可以先把数据寄存到这里。我去年给某制造业客户做监控方案时他们的CNC机床就部署在物理隔离区正是用PushGateway解决了数据采集难题。这种曲线救国的方式完美填补了Prometheus监控版图的空白区域。2. PushGateway工作原理详解2.1 数据流转的三段式接力整个监控数据的旅程就像一场接力赛第一棒各类Job比如cronjob、批处理脚本将指标推送到PushGateway的/metrics接口第二棒PushGateway将数据缓存在内存中默认持久化间隔5分钟第三棒Prometheus按照配置的scrape_interval定时抓取数据这里有个容易踩坑的地方PushGateway只是临时中转站不是长期存储。有次我忘记设置persistence.interval参数结果服务器重启后所有临时数据都丢了。建议生产环境至少配置为2分钟持久化一次--persistence.interval2m --persistence.file/data/pushgateway/pg.data2.2 标签系统的巧妙设计PushGateway的/metrics接口支持URL参数传递标签这种设计非常灵活# 推送到指定job和instance curl -X POST http://pushgateway:9091/metrics/job/my_job/instance/10.0.0.1但要注意标签冲突问题。当Prometheus抓取时如果遇到jobmy_job的指标既来自PushGateway又来自其他exporter就需要设置scrape_configs: - job_name: pushgateway honor_labels: true # 优先保留PushGateway的原始标签3. 手把手部署实战3.1 二进制部署适合快速验证wget https://github.com/prometheus/pushgateway/releases/download/v1.6.1/pushgateway-1.6.1.linux-amd64.tar.gz tar -xvf pushgateway-1.6.1.linux-amd64.tar.gz -C /usr/local/bin/ nohup /usr/local/bin/pushgateway --web.listen-address:9091 3.2 容器化部署推荐生产环境docker run -d -p 9091:9091 \ -v /data/pushgateway:/persistence \ prom/pushgateway \ --persistence.file/persistence/data.file \ --persistence.interval2m3.3 Systemd服务配置创建/etc/systemd/system/pushgateway.service[Unit] DescriptionPushgateway Afternetwork.target [Service] ExecStart/usr/local/bin/pushgateway \ --web.listen-address:9091 \ --persistence.file/data/pushgateway/pg.data \ --persistence.interval2m \ --log.levelinfo [Install] WantedBymulti-user.target启动命令systemctl daemon-reload systemctl enable --now pushgateway4. 生产环境最佳实践4.1 安全防护方案PushGateway默认没有认证机制我建议至少要做这三层防护网络隔离用Nginx做反向代理配置Basic Authlocation / { proxy_pass http://localhost:9091; auth_basic PushGateway; auth_basic_user_file /etc/nginx/.htpasswd; }IP白名单通过iptables限制访问源iptables -A INPUT -p tcp --dport 9091 -s 10.0.0.0/24 -j ACCEPTHTTPS加密使用Lets Encrypt免费证书4.2 数据清理策略PushGateway不会自动清理旧数据长期运行会导致内存膨胀。我的经验是定期调用API清理# 删除特定job的数据 curl -X DELETE http://pushgateway:9091/metrics/job/some_job # 使用cronjob每天凌晨清理过期数据 0 3 * * * curl -X PUT http://localhost:9091/api/v1/admin/wipe4.3 高可用部署方案对于关键业务建议部署两个PushGateway实例前端用Nginx做负载均衡upstream pushgateway { server 10.0.0.1:9091; server 10.0.0.2:9091 backup; }在Prometheus配置中设置多目标抓取scrape_configs: - job_name: pushgateway static_configs: - targets: [10.0.0.1:9091, 10.0.0.2:9091]5. 典型应用场景解析5.1 短生命周期任务监控比如监控CI/CD流水线中的构建任务可以在Jenkins Pipeline中这样推送数据pipeline { stages { stage(Build) { steps { sh make build sh BUILD_TIME$(date %s) echo build_duration_seconds $BUILD_TIME | \ curl --data-binary - http://pushgateway:9091/metrics/job/jenkins/instance/${BUILD_ID} } } } }5.2 边缘设备监控某物联网项目通过MQTT协议收集设备数据再用Python脚本中转import paho.mqtt.client as mqtt import requests def on_message(client, userdata, msg): payload msg.payload.decode() requests.post( http://pushgateway:9091/metrics/job/iot_gateway, dataftemperature {payload} ) client mqtt.Client() client.on_message on_message client.connect(mqtt_broker, 1883) client.subscribe(sensors/#) client.loop_forever()5.3 跨网络区域监控当监控目标与Prometheus不在同一VPC时可以在DMZ区部署PushGateway。某金融客户采用这种架构[生产区] -- (NAT) -- [DMZ PushGateway] -- [监控区 Prometheus]6. 常见问题排查指南6.1 数据推送到但Prometheus看不到检查三个关键点Prometheus配置中honor_labels是否为true检查PushGateway的/metrics页面是否有数据查看Prometheus的Targets页面是否显示UP6.2 内存占用过高通过/metrics接口查看process_resident_memory_bytes指标。如果持续增长# 调整GC参数 --web.heap-size512MB \ --web.max-requests406.3 数据重复或丢失确保每个推送请求包含完整的标签组合。我曾经遇到因为instance标签缺失导致的数据覆盖问题后来统一采用这种格式/metrics/job/job/instance/ip/unique_id7. 监控PushGateway自身别忘了监控这个监控组件建议配置这些关键指标告警pushgateway_http_requests_total请求量突降可能意味着推送失败pushgateway_build_info版本信息process_resident_memory_bytes内存泄漏检测示例Prometheus告警规则groups: - name: pushgateway rules: - alert: PushGatewayDown expr: up{jobpushgateway} 0 for: 5m - alert: HighPushGatewayMemory expr: process_resident_memory_bytes{jobpushgateway} 1GB在Grafana中可以导入官方DashboardID: 10805这是我调整过的版本重点关注指标推送成功率内存使用趋势持久化文件大小

相关文章:

【云原生监控】PushGateway:打通监控数据“最后一公里”的桥梁

1. 为什么需要PushGateway? 在云原生监控体系中,Prometheus的拉取模式(Pull)是主流设计。但实际生产环境中,我们经常会遇到这些头疼的场景:某台服务器躲在防火墙后面出不来,某个临时任务运行5分…...

nomic-embed-text-v2-moe参数详解:MoE专家数、路由机制、token-level稀疏激活原理

nomic-embed-text-v2-moe参数详解:MoE专家数、路由机制、token-level稀疏激活原理 1. 引言:为什么你需要了解这个嵌入模型? 如果你正在寻找一个既强大又高效的文本嵌入模型,特别是需要处理多语言任务时,nomic-embed-…...

终极Ghostty终端配置指南:5步打造专业级开发环境

终极Ghostty终端配置指南:5步打造专业级开发环境 【免费下载链接】ghostty-config A beautiful config generator for Ghostty terminal. 项目地址: https://gitcode.com/gh_mirrors/gh/ghostty-config Ghostty-config是一款专为Ghostty终端设计的可视化配置…...

开箱即用!ClearerVoice-Studio语音增强实战,让电话录音清晰如面对面

开箱即用!ClearerVoice-Studio语音增强实战,让电话录音清晰如面对面 1. 为什么我们需要专业语音增强工具? 在日常工作中,我们经常遇到这些令人头疼的语音场景: 重要客户电话录音中夹杂着交通噪音和信号干扰远程会议…...

用Arduino Uno给ESP-01烧录AT固件的隐藏技巧(附低成本配件清单)

用Arduino Uno给ESP-01烧录AT固件的隐藏技巧(附低成本配件清单) 当手边没有专用USB-TTL工具时,许多创客会陷入两难:要么等待快递送达,要么放弃项目进度。其实你抽屉里的Arduino Uno开发板就是现成的解决方案——它不仅…...

KLayout Python集成:突破DRC自动化的三大技术瓶颈

KLayout Python集成:突破DRC自动化的三大技术瓶颈 【免费下载链接】klayout KLayout Main Sources 项目地址: https://gitcode.com/gh_mirrors/kl/klayout 问题定位:传统DRC流程的自动化困境 如何解决集成电路设计中DRC检查与现代开发流程脱节的…...

Buildroot系统屏蔽fbcon后如何正确显示内核启动Logo?

Buildroot系统中fbcon与DRM显示框架冲突的深度解析与解决方案 当你在嵌入式系统中使用Buildroot构建内核时,可能会遇到一个棘手的问题:禁用FrameBuffer Console(fbcon)后,内核启动Logo无法正常显示。这背后涉及到Linux显示子系统中多个组件的…...

180+算法编程技巧:从入门到精通的完整指南

180算法编程技巧:从入门到精通的完整指南 【免费下载链接】algorithms_and_data_structures 180 Algorithm & Data Structure Problems using C 项目地址: https://gitcode.com/gh_mirrors/al/algorithms_and_data_structures GitHub 加速计划 / al / al…...

从炸管到稳定调试:一个硬件工程师的十年Jlink隔离器避坑史(附V3.3.0通用版实测)

嵌入式调试隔离技术十年演进:从基础防护到高速兼容的实战之路 当我在2013年第一次目睹价值六位数的劳德巴赫仿真器因高压反冲变成"电子砖块"时,才真正理解调试隔离器在嵌入式开发中的分量。这不是简单的信号中转站,而是横亘在昂贵设…...

Coqui TTS Docker部署实战:从环境配置到生产级优化

最近在做一个智能客服项目,需要集成语音合成能力。调研了一圈,Coqui TTS以其出色的开源模型和灵活性进入了视野。然而,从官方仓库 git clone 下来准备大干一场时,现实给了我一记重拳:复杂的Python依赖、特定版本的CUDA…...

释放创意:用SPIRAN ART SUMMONER的“晶球盘”微调你的专属画风

释放创意:用SPIRAN ART SUMMONER的"晶球盘"微调你的专属画风 1. 认识SPIRAN ART SUMMONER SPIRAN ART SUMMONER是一款融合了顶尖图像生成技术与《最终幻想10》美学风格的视觉创作平台。它基于Flux.1-Dev模型构建,通过独特的"晶球盘&quo…...

告别Qt和MFC:为什么我选择用wxWidgets给C++ GUI项目‘减负’?

为什么wxWidgets成为现代C GUI开发的轻量化首选? 在桌面应用开发领域,Qt和MFC长期占据主导地位,但近年来,越来越多的开发者开始转向wxWidgets——这个诞生于1992年却始终保持活力的框架。当我们需要开发一个跨平台的内部工具时&am…...

终极NPOI扩展开发指南:从零开始自定义Office格式支持

终极NPOI扩展开发指南:从零开始自定义Office格式支持 【免费下载链接】npoi a .NET library that can read/write Office formats without Microsoft Office installed. No COM, no interop. 项目地址: https://gitcode.com/gh_mirrors/np/npoi NPOI是一个强…...

必收藏!2026年普通人转大模型最落地指南(小白/程序员必看,避坑不踩雷)

站在2026年的节点回头回望,AI大潮已席卷两年有余。这两年里,流量风口轮番切换,岗位JD不断更新,各家大模型更是迭代不停、新品频出,但有一个核心事实始终未变:真正能落地、能帮普通人拿到机会的核心逻辑&…...

【2026年最新600套毕设项目分享】springboot音乐推荐系统(14243)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...

视觉AI应用的精度瓶颈与Depth Anything 3:如何解决实时深度估计与多平台集成的完整方案

视觉AI应用的精度瓶颈与Depth Anything 3:如何解决实时深度估计与多平台集成的完整方案 【免费下载链接】Depth-Anything-3 Depth Anything 3 项目地址: https://gitcode.com/gh_mirrors/de/Depth-Anything-3 在计算机视觉和三维重建领域,单目深度…...

VitePress静态资源管理全攻略:图片路径配置与项目结构优化

VitePress静态资源管理全攻略:图片路径配置与项目结构优化 在构建现代文档站点时,静态资源的高效管理往往成为影响开发体验的关键因素。VitePress作为基于Vite的静态站点生成器,其资源处理机制既继承了Vite的强大能力,又有着独特的…...

告别AI单打独斗:如何让多个AI模型像团队一样协同工作

告别AI单打独斗:如何让多个AI模型像团队一样协同工作 【免费下载链接】oh-my-openagent The Best Agent Harness. Meet Sisyphus: The Batteries-Included Agent that codes like you. 项目地址: https://gitcode.com/gh_mirrors/oh/oh-my-openagent 你是否曾…...

MTKClient技术解析:突破设备限制的底层操作工具

MTKClient技术解析:突破设备限制的底层操作工具 【免费下载链接】mtkclient MTK reverse engineering and flash tool 项目地址: https://gitcode.com/gh_mirrors/mt/mtkclient MTKClient是一款功能强大的开源联发科设备工具,它通过直接与MTK芯片…...

新手必看:用Vulfocus在线靶场复现MACCMS远程命令执行漏洞(CVE-2017-17733)

从零开始实战:MACCMS远程命令执行漏洞复现指南 引言 在网络安全领域,漏洞复现是每位初学者必须掌握的核心技能之一。通过实际操作复现已知漏洞,不仅能加深对漏洞原理的理解,更能培养实战能力。本文将聚焦于MACCMS视频系统中的一…...

fheroes2:经典英雄无敌II引擎的现代重生

fheroes2:经典英雄无敌II引擎的现代重生 【免费下载链接】fheroes2 fheroes2 is a recreation of Heroes of Might and Magic II game engine. 项目地址: https://gitcode.com/gh_mirrors/fh/fheroes2 fheroes2作为英雄无敌II游戏引擎的开源重制版&#xff0…...

打造Windows任务栏美化新体验:TranslucentTB轻量级透明工具全攻略

打造Windows任务栏美化新体验:TranslucentTB轻量级透明工具全攻略 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 在Windows桌…...

清音刻墨Qwen3智能字幕系统:毫秒级对齐,小白也能做专业字幕

清音刻墨Qwen3智能字幕系统:毫秒级对齐,小白也能做专业字幕 1. 为什么需要智能字幕系统? 视频内容创作者经常面临一个共同难题:如何高效生成精准的字幕。传统方法要么依赖人工听写耗时费力,要么使用普通语音识别工具…...

从实验室到产线:硅片ni值之争如何影响你的芯片设计与工艺仿真?

硅片ni值之争:芯片设计与工艺仿真中的隐形战场 当你在Sentaurus中设置完所有物理模型参数,点击仿真按钮时,是否想过一个看似基础的本征载流子浓度(ni)参数,可能正在悄悄扭曲你的仿真结果?在300K温度下,从1.…...

颠覆传统音频处理:SAM-Audio多模态分离全攻略

颠覆传统音频处理:SAM-Audio多模态分离全攻略 【免费下载链接】sam-audio The repository provides code for running inference with the Meta Segment Anything Audio Model (SAM-Audio), links for downloading the trained model checkpoints, and example note…...

Doctrine Event Manager:PHP事件系统的终极入门指南

Doctrine Event Manager:PHP事件系统的终极入门指南 【免费下载链接】event-manager The Doctrine Event Manager is a library that provides a simple event system. 项目地址: https://gitcode.com/gh_mirrors/ev/event-manager Doctrine Event Manager是…...

终极指南:掌握evio高级配置TCPKeepAlive和ReuseInputBuffer的10个技巧

终极指南:掌握evio高级配置TCPKeepAlive和ReuseInputBuffer的10个技巧 【免费下载链接】evio Fast event-loop networking for Go 项目地址: https://gitcode.com/gh_mirrors/ev/evio evio是一个高性能的事件循环网络框架,专为Go语言设计&#xf…...

Qwen2.5-7B快速搭建:结合vLLM实现高效推理的Gradio应用

Qwen2.5-7B快速搭建:结合vLLM实现高效推理的Gradio应用 1. 引言 在当今AI技术快速发展的背景下,大型语言模型的应用越来越广泛。Qwen2.5-7B作为阿里开源的最新语言模型,在知识量、编程能力和数学能力等方面都有显著提升。本文将介绍如何快速…...

机载火控雷达资源调度优化:工作模式与功率管理的实战解析

1. 机载火控雷达的战场生存法则 现代空战就像两个蒙着眼睛的拳击手在擂台上对决,谁先摸清对方的位置,谁就能打出致命一击。机载火控雷达就是战机在空战中的"电子眼",但这个眼睛有个致命弱点——当它盯着对手看的时候,自…...

注册表编辑安全防护:PowerToys Registry Preview完全指南

注册表编辑安全防护:PowerToys Registry Preview完全指南 【免费下载链接】PowerToys Windows 系统实用工具,用于最大化生产力。 项目地址: https://gitcode.com/GitHub_Trending/po/PowerToys Windows系统的注册表(Windows系统配置数…...