1 Pushgateway是什么
pushgateway是另一种数据采集的方式
,采用被动推送来获取监控数据的prometheus插件,它可以单独运行在任何节点上,并不一定要运行在被监控的客户端
。
- 首先通过用户自定义编写的脚本把需要监控的数据发送给pushgateway,
- pushgateway再将数据推送给对应的Prometheus服务。
对于短时运行、不支持轮询的任务,可以引入 pushgateway,将指标数值以 push 的方式推送到 pushgateway暂存,然后 prometheus 从 pushgateway 中轮询
2 使用Pushgateway的主要原因
原因一:因为Prometheus 采用 pull 模式,可能由于不在一个子网或者防火墙,导致 Prometheus 无法直接拉取各个 target 数据。
Prometheus 在一些情况下无法直接拉取各个 target 数据
原因二:在监控业务数据的时候,需要将不同数据汇总, 由 Prometheus 统一收集
。
3 弊端
1:将多个节点数据汇总到 pushgateway, 如果pushgateway 挂了,受影响比多个 target 大。
通过单个 Pushgateway 监控多个实例时, Pushgateway 将会成为单点故障和潜在瓶颈
2:Prometheus 拉取状态 up 只针对 pushgateway, 无法做到对每个节点有效。
3: Pushgateway 可以持久化推送给它的所有监控数据。 因此,即使你的监控已经下线,prometheus 还会拉取到旧的监控数据,需要手动清理 pushgateway 不要的数据
4 监控数据获取结构图
4.1 Pushgateway结构图
4.2 与Prometheus结合使用流程图
通过客户端 POST数据至pushgateway,prometheus拉取pushgateway里数据,经过alertmanager报警规则触发,到prometheusalert自定义模板,最后飞书机器人发送该报警信息,
流程如下: