pushgateway详解

1、Pushgateway简介

Pushgateway为Prometheus整体监控方案的功能组件之一,并做为一个独立的工具存在。它主要用于Prometheus无法直接拿到监控指标的场景,如监控源位于防火墙之后,Prometheus无法穿透防火墙;目标服务没有可抓取监控数据的端点等多种情况。在类似场景中,可通过部署Pushgateway的方式解决问题。

当部署该组件后,监控源通过主动发送监控数据到Pushgateway,再由Prometheus定时获取信息,实现资源的状态监控。

工作流程

  1. 监控源通过Post方式,发送数据到Pushgateway,路径为/metrics。
  2. Prometheus服务端设置任务,定时获取Pushgateway上面的监控指标。
  3. Prometheus获取监控指标后,会根据告警规则进行计算,如果匹配将触发告警到Alertmanager;同时,Grafana可配置数据源调用Prometheus数据,做为数据展示。

2、pushgateway的使用方法

1、常见参数

usage: pushgateway [<flags>]
Flags:
--web.listen-address=":9091"       监听Web界面,API和遥测的地址。
--web.telemetry-path="/metrics"    公开metrics的路径。
--web.external-url=                 可从外部访问Pushgateway的URL.
--web.route-prefix=""       Web端点内部路由的前缀。默认为--web.external-url
--persistence.file=""       归档以保留metrics。如果为空,则metrics仅保留在内存中.
--persistence.interval=5m    写入持久性文件的最小间隔。
--log.level="info"  仅记录具有给定严重性或更高严重性的消息。
#有效级别:[debug, info, warn, error, fatal]
--log.format="logger:stderr"    设置日志目标和格式。
#示例:"logger:syslog?appname = bob&local = 7"或" logger: stdout?json = true"
--version                    显示应用程序版本。

2、常用api

​ 热加载

curl  -X POST http://127.0.0.1:9090/-/reload

​ 通过API接口默认push到pushgateway的格式

http://<ip>:9091/metrics/job/<JOBNAME>{/<LABEL_NAME>/<LABEL_VALUE>}
#示例
echo "pro_metric 80" | curl --data-binary @- http://192.168.100.221:9091/metrics/job/test_job

​ 删除指标

#删除组下的所有指标
curl -X DELETE http://192.168.100.221:9091/metrics/job/test_job
#删除某一个单独的指标
curl -X DELETE http://192.168.100.221:9091/metrics/job/test_job/instance/test_instance

3、使用案例

1、编写脚本

#!/bin/bash
#set -x
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
job="fping"
instance="114.114.114.114"
icmppingloss=`fping -q -c3 "$instance" 2>&1 |awk -F '[/ %]+' '{print $9}'`
icmppingsec=`fping -q -c3 "$instance" 2>&1 |awk -F '[/ %]+' '{print $16}'`
icmpping=`fping -q -c3 "$instance" 2>&1 |awk -F '=' '{print $2}' |awk -F '/' '{print $2}'`
cat <<EOF | curl --data-binary @- http://192.168.100.221:9091/metrics/job/$job/instance/$instance
# TYPE node_fping_usages gauge
node_fpingloss_usages $icmppingloss
node_fpingsec_usages  $icmppingsec
node_fping_usages     $icmpping
EOF

2、计划任务,定时执行脚本

crontab -e
*/1 * * * * /usr/bin/bash  /mnt/pushfping.sh

4、注意事项

  • 会丧失通过UP监控指标,检查示例健康状态的功能,prometheus只会监控pushgateway的存活状态。
  • 指标值只能是数字类型,非数字类型报错。
  • 数据指标推送时间≤ Prometheus 拉取的时间,以保证Prometheus保证每次拉取的数据是最新 Push 上来的。
  • 默认 PushGateway 不做数据持久化操作,当 PushGateway 重启或者异常挂掉,导致数据的丢失,可以通过启动时添加 -persistence.file 和 -persistence.interval 参数来持久化数据。-persistence.file 表示本地持久化的文件,将 Push 的指标数据持久化保存到指定文件,-persistence.interval 表示本地持久化的指标数据保留时间,若设置为 5m,则表示 5 分钟后将删除存储的指标数据。
  • 指标值支持最大长度为 16 位,超过16 位后默认置为 0
  • Pushgateway每次只向Prometheus返回最后一次推送的数据,如果客户端一直没有推送新的指标到pushgateway,那么Prometheus将始终拉取最后push上来的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值