Pushgateway 介绍
Pushgateway 是 Prometheus 生态系统中的一个组件,主要用于解决 Prometheus 默认的 pull(拉取)模式在某些情况下无法获取数据的问题,如监控源位于防火墙之后,Prometheus 无法穿透防火墙,目标服务没有可抓取监控数据的端点,即时任务执行时间端无法拉取监控指标等。在类似场景中,可通过部署 Pushgateway 的方式解决问题。当部署该组件后,监控源通过主动发送监控数据到 Pushgateway,再由 Prometheus 定时获取信息,实现资源的状态监控。
尽管 Pushgateway 在某些场景下非常有用,但它也有一些缺点需要考虑:
- 单点故障风险:如果 Pushgateway 出现问题,整个采集到的数据都会受到影响。这意味着 Pushgateway 的稳定性和可用性对整个监控系统至关重要。
- 数据清理问题:Pushgateway 可以持久化推送给它的所有监控数据,这意味着即使你的监控已经下线,Prometheus 还会拉取到旧的监控数据。这需要手动清理 Pushgateway 中不需要的数据,增加了维护的复杂性。
- 监控状态不准确:Prometheus 拉取状态 up 只针对 Pushgateway,而不能对每个节点都有效。这可能导致监控数据的准确性受到影响。
使用 DataKit 替换 Pushgateway
DataKit 是观测云的统一采集器,利用 DataKit 上报 Pushgateway 协议的数据可以解决 Pushgateway 组件的缺点,实现高可用,监控状态一致的指标上报体验。
同 Prometheus 通过 pull 方式采集 Pushgateway 方式不同,观测云 DataKit 完全采用 push 方式上报指标,这样可以实现上报高可用,维护配置方便,监控状态和数据清理问题也不复存在。具体步骤如下:
安装 DataKit
开启 Pushgateway 采集器
- 主机环境
pushgateway 配置修改如下:
重启 DataKit
- k8s 环境
上报 Pushgateway 数据
使用如下命令上报 Pushgateway 协议数据。
实现效果
默认会上报至 pushgateway 指标集,通过观测云指标面板即可查询指标数据,也可通过 promQL 查询上报的指标数据。