Promtheus基础概念
监控架构
Prometheus是一款面向云原生应用程序的开源监控工具。
- Prometheus server:采集存储监控数据
- Prometheus targets:采集对象主要分为两类
2.1 各种资源或服务exporters。
2.2 Pushgateway,一些短作业将监控数据推送至Pushgateway。
Prometheus server均采取pull模式主动采集对象的指标数据。 - 服务自发现机制:如通过访问Kubernetes集群API Server端点,就可以动态发
现和监控集群内资源和服务。 - Alertmanager:Prometheus server定义告警规则并应用于采集到的监控数据,
触发告警之后推送告警信息至Alertmanager,由Alertmanager进行告警处理和
路由(支持邮件、webhook等方式)。 - 数据可视化和导出:Prometheus web控制台和Grafana,以及API客户端。
通过Operator部署Prometheus架构
上图中的Operator作为控制器会去创建Prometheus、ServiceMonitor、PodMonitor、
AlertManager以及PrometheusRule等多个CRD(CustomResourceDefinitions)资
源。
- Prometheus:作为Prometheus Server存在。
- ServiceMonitor:以声明方式指定应如何监视服务组。Operator根据定义自动生成
Prometheus采集配置。实际上就是exporter的各种抽象,提供metrics数据接口。
Prometheus就是通过ServiceMonitor提供的metrics数据接口去 pull 数据。 - PodMonitor:以声明方式指定应如何监视Pod组。Operator根据定义自动生成
Prometheus采集配置。 - AlertManager:作为AlertManager存在。
- PrometheusRule:Prometheus实例使用的报警规则文件。
未完待续。。。
参考官网:https://prometheus.io/docs/introduction/overview/