Pushgateway 与 9091 端口
9091 是 Prometheus Pushgateway 的默认端口。Prometheus 采用拉取模型,短生命周期任务在结束前无法被稳定采集,于是先把指标推给 Pushgateway,再由 Prometheus 定期来拉。这个中转服务默认没有认证,且推送的数据会长期驻留,滥用会让指标失去意义。
基本信息
| 服务 | Prometheus Pushgateway |
|---|---|
| 端口/协议 | TCP HTTP 9091 |
| 工作方式 | 任务主动推送,由 Prometheus 拉取 |
| 数据特性 | 推送即驻留,需主动清理 |
| 权限要求 | 默认无认证,靠部署侧限制 |
| 安全等级 | 仅监控网段,按需加认证 |
典型使用场景
- 批处理任务:作业结束时上报成功状态与耗时
- 定时脚本:把执行结果转成指标供告警使用
- 一次性迁移:在数据迁移期间上报进度指标
- 多环境隔离:按分组维度区分不同环境的数据
- 排障:确认推送是否成功以及指标是否被覆盖
推送与清理
推送与清理
echo 'batch_job_last_success 1' | curl --data-binary @- http://localhost:9091/metrics/job/batch
curl -s http://localhost:9091/metrics | head -20 # 查看已驻留的指标
curl -X DELETE http://localhost:9091/metrics/job/batch # 清理某个分组的指标
sudo ss -lntp | grep 9091 # 确认监听范围关键行为读法
| 行为 | 含义 | 注意 |
|---|---|---|
| 推送即驻留 | 指标保留到被删除为止 | 作业下线后要清理 |
| 同分组覆盖 | 同分组同指标名会被覆盖 | 分组维度要设计合理 |
| 无认证接口 | 任何可达主机都能推送 | 限制来源网段 |
| 按间隔拉取 | 数据新鲜度由抓取周期决定 | 不要当作实时指标 |
运维要点
- 作业与分组命名统一,避免同一含义产生多份数据
- 把清理动作做成定时任务,随作业下线同步删除分组
- 接收端口限制来源网段,必要时前置认证
- 监控抓取失败与数据新鲜度,及时发现中转异常
- 批任务指标与常驻服务的采集分开设计,避免混淆口径
推送的指标不会被自动清理:作业取消或改名后旧数据仍留在分组里,长期积累会让看板出现早已下线的任务,需要定时清理或删除对应分组。
接口无认证意味着任何可达主机都能往指标里写数据,监控失真后可能触发错误告警或掩盖真实故障,应限制来源网段并考虑前置认证。