pushgateway 部署方式灵活,向pushgateway推送数据方式简单也方便,如下:
tar zxf pushgateway-1.2.0.linux-amd64.tar.gz
mv pushgateway-1.2.0.linux-amd64 /usr/local/pushgateway
# 编写centos7 启停控制脚本
cat > /usr/lib/systemd/system/pushgateway.service << EOF
[Unit]
Description=pushgateway
After=network.target
[Service]
Restart=on-failure
WorkingDirectory=/usr/local/pushgateway
ExecStart=/usr/local/pushgateway/pushgateway # 如果需要持久化pushgateway数据,可以加上--persistence.file="" 和--persistence.interval=5m 两个参数
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable pushgateway.service
systemctl start pushgateway.service
pushgateway的API
删除某个组下的某实例的所有数据:
curl -X DELETE http://pushgateway.example.org:9091/metrics/job/some_job/instance/some_instance
删除某个组下的所有数据:
curl -X DELETE http://pushgateway.example.org:9091/metrics/job/some_job
收集的监控数据推送给pushgateway的方式
curl -XPOST --data-binary @/tmp/pushgateway.txt http://127.0.0.1:9091/metrics/job/pushgateway
# --data-binary 二进制文件数据
# job/pushgateway 是job名称,prometheus后期就根据这个名称来拉数据
这个推送数据的方式可以看出,pushgateway对接收的数据格式要求不多,我们可以通过多种方式、推送多种格式的数据给它。这样一来,也就可以通过脚本上传很多自定义数据。
pushgateway也是有web管理页面的,这里也可以加一个nginx配置和域名来通过web 查看、管理pushgateway里的数据
nginx 配置文件
cat > pushgateway.conf << EOF
server {
listen 80;
server_name pushgateway.aaaa.com;
location / {
auth_basic "Alert Auth";
auth_basic_user_file /usr/local/nginx/prometheus.passwd;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://172.19.120.164:9091;
}
access_log /usr/local/nginx/logs/pushgateway.log main;
}
EOF