Linux部署Prometheus Pushgateway需完成二进制安装、服务注册与持久化配置,包含四种方法:一、systemd托管的二进制安装;二、手动运行启用持久化;三、Docker容器化部署;四、Ansible批量自动化部署。

如果您需要在Linux系统中部署Prometheus Pushgateway以支持批量任务或离线作业的指标上报,则必须完成二进制安装、服务注册与持久化配置等关键环节。以下是实现该目标的多种可行方法:
一、二进制包方式安装与系统服务配置
该方法适用于无容器环境且需长期稳定运行的生产场景,通过systemd托管进程生命周期,并确保Pushgateway以指定用户权限启动,避免权限过高带来的安全风险。
1、访问Prometheus官方发布页,下载对应架构的Linux二进制包,例如pushgateway-1.11.2.linux-amd64.tar.gz。
2、将压缩包上传至目标服务器的/app目录下。
3、执行解压命令:tar -zxvf pushgateway-1.11.2.linux-amd64.tar.gz。
4、重命名解压目录并清理压缩文件:mv pushgateway-1.11.2.linux-amd64 pushgateway && rm -rf pushgateway-1.11.2.linux-amd64.tar.gz。
5、创建专用系统用户:sudo useradd --no-create-home --shell /bin/false prometheus。
6、设置目录属主与执行权限:sudo chown -R prometheus:prometheus /app/pushgateway && sudo chmod +x /app/pushgateway/pushgateway。
7、创建systemd服务单元文件:sudo vim /etc/systemd/system/pushgateway.service,内容包含[Unit]、[Service]和[Install]三段,其中ExecStart需明确指定--web.listen-address=:9091及--web.enable-admin-api参数。
8、重载systemd配置并启用服务:sudo systemctl daemon-reload && sudo systemctl enable --now pushgateway.service。
二、直接运行二进制并启用持久化存储
该方式适合快速验证或临时调试,无需依赖systemd,但需手动管理进程与数据持久性,适用于开发测试环境。
1、解压后进入pushgateway目录:cd /usr/local/pushgateway-0.8.0.linux-amd64。
2、执行带持久化参数的启动命令:./pushgateway --web.listen-address=":9091" --web.telemetry-path="/metrics" --persistence.interval=5m --persistence.file="persistence-data"。
3、确认端口监听状态:lsof -i :9091或netstat -tuln | grep 9091。
4、推送一条测试指标:echo "test_metric 1" | curl --data-binary @- http://localhost:9091/metrics/job/test。
5、访问http://localhost:9091,检查页面是否显示已推送的job=test条目。
三、Docker容器化部署(含数据卷挂载)
该方法利用容器隔离性简化依赖管理,通过绑定挂载实现配置与持久化数据外置,便于版本切换与故障回滚。
1、拉取官方镜像:docker pull prom/pushgateway:v1.11.2。
2、创建本地数据目录:mkdir -p /opt/pushgateway/data。
3、运行容器并挂载路径与端口:docker run -d --name pushgateway -p 9091:9091 -v /opt/pushgateway/data:/data prom/pushgateway:v1.11.2 --persistence.file=/data/persistence.data --persistence.interval=5m。
4、验证容器运行状态:docker ps | grep pushgateway。
5、向容器推送指标:echo "container_metric 42" | curl --data-binary @- http://localhost:9091/metrics/job/container_test。
6、检查持久化文件是否生成:ls -l /opt/pushgateway/data/,确认persistence.data存在且有写入时间戳。
四、基于Ansible自动化批量部署
该方式面向多节点统一纳管场景,通过playbook定义幂等操作,规避手工执行差异,适用于中大型基础设施运维。
1、在控制节点准备inventory文件,列出所有目标主机IP及SSH凭证。
2、编写pushgateway_install.yml playbook,包含tasks:下载二进制包、解压、创建用户、设置权限、生成service文件、启动服务。
3、在tasks中使用copy模块分发预置的pushgateway.service模板,变量注入ListenAddress与Loglevel。
4、使用command模块执行tar解压与mv重命名,确保idempotent语义。
5、调用systemd模块启用并启动服务,state设为started,enabled设为yes。
6、执行部署命令:ansible-playbook -i inventory pushgateway_install.yml。
7、使用debug模块输出各节点服务状态,确认ExitCode为0且Active为active (running)。

















