Prometheus
Prometheus 是一个生态。
1. 概述
Prometheus Server,主要用于抓取数据和存储时序数据,另外还提供查询和 Alert Rule 配置管理。
client libraries,用于检测应用程序代码的客户端库。
push gateway,用于批量,短期的监控数据的汇总节点,主要用于业务数据汇报等。
exporters,收集监控样本数据,并以标准格式向Prometheus 提供。例如:收集服务器系统数据的node_exporter,收集MySQL监控样本数据的是MySQL exporter 等等。
alertmanager,用于告警通知管理。
Pushgateway 是Prometheus 生态中一个重要工具,使用它的原因主要是:
- Prometheus 采用pull模式,可能由于不在一个子网或者防火墙原因,导致Prometheus 无法直接拉取各个target 数据。
- 在监控业务数据的时候,需要将不同数据汇总,由Prometheus 统一收集。
- 当exporter不能满足需要时,也可以通过自定义(python、shell、java)监控我们想要的数据。由于以上原因,不得不使用pushgateway,但在使用之前,有必要了解一下它的一些弊端:
- 将多个节点数据汇总到pushgateway,如果 pushgateway挂了,受影响比多个target大。
- Prometheus 拉取状态 up 只针对 pushgateway,无法做到对每个节点有效。
- Pushgateway可以持久化推送给它的所有监控数据。
因此,即使你的监控已经下线,prometheus 还会拉取到旧的监控数据,需要手动清理pushgateway不要的数据。
2. PromQL
2.1 PromQL的基础使用
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 GXBLOGS!
评论