#Prometheus#
监控路漫漫其修远兮,吾将上下而求索!
一、前言
在监控工作过程中经常会收到大量的定制化的监控需求,Prometheus就提供了一个很强大的组件 --> Pushgateway,他不仅是网关的用途接收exporter的数据,还可以接收自定义的监控指标数据,再由Prometheus server主动去拉取Pushgateway数据。当然他也存在一些缺点,比如:单点问题、监控数据下线但是pushgateway还是会被拉取到旧数据等问题。
二、部署方法
Prometheus服务端的部署方法前面文章已经有了介绍,此处就不再赘述,主要说明Pushgateway的部署方法,首先下载预编译安装包:Download | Prometheus
Pushgateway基于Golang编写,编译后的软件包,不依赖于任何的第三方依赖,只需要下载对应平台的二进制包,解压并且添加基本的配置即可正常启动。
下面脚本我们将组件配置成服务启动
cat /usr/lib/systemd/system/pushgateway.service
[Unit]
Description=pushgateway
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/pushgateway/pushgateway --persistence.file="/home/pushgateway/data/" --persistence.interval=5m
Restart=on-failure
[Install]
WantedBy=multi-user.target
创建数据目录及配置服务
# 创建数据目录
mkdir -p /home/pushgateway/data/
# 复制服务脚本到系统服务目录下
cp pushgateway.service /usr/lib/systemd/system/
然后启动服务 systemctl start pushgateway
Prometheus server服务端配置Pushgateway
- job_name: 'pushgateway'
scrape_interval: 30s
honor_labels: true
static_configs:
- targets: ["IP地址:9091"]
labels:
instance: pushgateway
重启Prometheus服务使其立即生效。
打开Prometheus服务端查看节点是否正常接入
如果正常接入表示已部署成功。
三、数据验证
我们先推送一个job名称为“some_job”的数据进行验证
echo "some_metric 3.14" | curl --data-binary @- http://IP地址:9091/metrics/job/some_job
要推送一个比较复杂的数据可以参照
cat <<EOF | curl --data-binary @- http://IP地址:9091/metrics/job/some_job/instance/some_instance
# TYPE some_metric counter
some_metric{label="val1"} 42
# TYPE another_metric gauge
# HELP another_metric Just an example.
another_metric 2398.283
EOF
要删除上面数据,则执行
curl -X DELETE http://IP地址:9091/metrics/job/some_job/instance/some_instance
根据job名称删除,可执行
curl -X DELETE http://IP地址:9091/metrics/job/some_job
删除所有组中的所有指标(启动服务时需要引入参数 --web.enable-admin-api )
curl -X PUT http://IP地址:9091/api/v1/admin/wipe
根据以上数据验证,我们可根据实际需求,编写自己的监控脚本对数据进行推送、删除等操作。