背景
在运维场景中,长期运行的服务通常能被 Prometheus 正常采集,但那些凌晨跑的备份脚本、几分钟就结束的 CI/CD 任务或临时调度的数据处理作业,往往因为执行时间短、进程退出快,导致拉取机制无法抓取到状态数据。这些短命任务成了监控体系中的'黑盒'。
Pushgateway 正是为了解决这类问题而设计的中间件。它允许一次性任务主动推送指标,再由 Prometheus 拉取展示,从而补齐了监控闭环。
安装与部署
本次演示基于 Linux 环境,支持二进制包安装和 Docker 两种方式。
1. 二进制包安装
下载 Linux 版本的 Pushgateway 二进制包并解压至指定目录:
tar -zxvf pushgateway-1.11.2.linux-amd64.tar.gz
重命名目录并清理压缩包:
mv pushgateway-1.11.2.linux-amd64 pushgateway
rm -rf pushgateway-1.11.2.linux-amd64.tar.gz
创建 systemd 服务文件以管理进程:
sudo vim /etc/systemd/system/pushgateway.service
写入以下内容(注意确保用户权限正确):
[Unit]
Description=Pushgateway for Prometheus
Documentation=https://github.com/prometheus/pushgateway
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecStart=/app/pushgateway/pushgateway \
--web.listen-address=:9091 \
--web.enable-admin-api \
--log.level=info
WorkingDirectory=/app/pushgateway
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal
SyslogIdentifier=pushgateway
[Install]
WantedBy=multi-user.target
设置权限并启动服务:
sudo chown -R prometheus:prometheus /app/pushgateway
sudo +x /app/pushgateway/pushgateway
systemctl daemon-reload
systemctl start pushgateway
systemctl pushgateway


