Prometheus 监控

发布时间 2023-06-13 15:26:23作者: 滴滴滴

Prometheus最开始设计是一个面向云原生应用程序的开源的监控&报警工具,在对 Kubernetes服务发现协议分析之前,我们先来梳理下 Prometheus 如何接入云原生,实现对 Kubernetes 集群进行监控。

Kubernetes 云原生集群监控主要涉及到如下三类指标:node 物理节点指标、pod & container 容器资源指标和Kubernetes 云原生集群资源指标。针对这三类指标都有比较成熟的方案,见下图:

 

除了kube-state-metrics,node-exporter、cadvisor之外还有k8s集群的监控 kubernetes_sd_config ,至此四大组件已经完成

 

kubernetes_sd_config 是一种用于 Prometheus 目标发现的机制,是其中一种服务发现方式。它提供了与 Kubernetes 集成的能力,通过自动发现 Kubernetes 上运行的 Pod、Service、Node 等对象,并将其挂载到 Prometheus 的目标列表中,从而方便 Prometheus 进行采集和监控。

Prometheus 是一种流行的开源监控和告警工具,它可以对各种数据源进行采集和处理,并支持使用自定义的查询语言进行复杂指标的计算和分析。为了实现对 Kubernetes 集群的监控,需要使用 kubernetes_sd_config 去指导 Prometheus 进行目标发现。kubernetes_sd_config 可以通过配置 Kubernetes API 访问参数,从 Kubernetes 中获取对象元数据,然后结合特定的标签筛选规则过滤出符合要求的 targets,并将它们加入 Prometheus 的监控列表中。

通过 kubernetes_sd_config,可以轻松实现对 Kubernetes 集群各组件(如 API server、etcd、kubelet、kube-proxy 等)以及应用程序的监控,同时支持动态扩展和灵活配置。当有新的 Kubernetes 对象添加到集群中时,kubernetes_sd_config 会自动检测并将其加入到 Prometheus 的监控列表中,无需手动添加或修改配置文件,极大地减轻了管理员的工作负担。