me小怪兽

导航

Prometheus 组成及架构

Prometheus 组成及架构
Prometheus 生态圈中包含了多个组件,其中许多组件是可选的:
Prometheus Server: ------服务端 ---处理,储存数据
负责收集和存储时间Prometheus 组成及架构序列数据(time series data),并且提供查询接口。
Jobs/Exporters: ------客户端 ---采集数据
客户端,用于暴露已有的第三方服务的 metrics 给 Prometheus。
监控并采集指标,对外暴露HTTP服务(/metrics);目前已经有很多的软件原生就支持Prometjeus,提供/metrics,可以直接使用;对于像操作系统已经不提供/metrics的应用,可以使用现有的exporters或者开发自己的exporters来提供/metrics服务;
Push Gateway: -----相当于代理---转发数据
针对push系统设计,Short-lived jobs定时将指标push到Pushgateway,再由Prometheus Server从Pushgateway上pull;
主要用于短期的 jobs。由于这类 jobs 存在时间较短,可能在 Prometheus 来 pull 之前就消失了。为此,这次 jobs 可以直接向 Prometheus server 端推送它们的 metrics。这种方式主要用于服务层面的 metrics,对于机器层面的 metrices,需要使用 node exporter。
Alertmanager: ----告警方式---实现告警
报警组件,从 Prometheus server 端接收到 alerts 后,会进行去除重复数据,分组,并路由到对收的接受方式,发出报警。常见的接收方式有:电子邮件,pagerduty,OpsGenie, webhook 等。
Web UI:
Prometheus内置一个简单的Web控制台,可以查询指标,查看配置信息或者Service Discovery等,实际工作中,查看指标或者创建仪表盘通常使用Grafana,Prometheus作为Grafana的数据源;
还有一些其他的工具
Prometheus 官方文档中的架构图:
1
从上图可以看出,Prometheus 的主要模块包括:
Prometheus server
exporters
Pushgateway
PromQL
Alertmanager
图形界面
工作流程:
1. Prometheus server 定期从配置好的 jobs 或者 exporters 中拉 metrics,或者接收来自 Pushgateway 发过来的 metrics,或者从其他的 Prometheus server 中拉 metrics。
2. Prometheus server 在本地存储收集到的 metrics,并运行已定义好的 alert.rules,记录新的时间序列或者向 Alertmanager 推送警报。
3. Alertmanager 根据配置文件,对接收到的警报进行处理,发出告警。
4. 在图形界面中,可视化采集数据。

posted on 2022-08-31 23:40  me小怪兽  阅读(321)  评论(0编辑  收藏  举报