23 Prometheus 之 Kubernetes 监控
Prometheus Operator 架构
架构中的各组成部分以不同的资源方式运行在 Kubernetes 集群中,它们各自有不同的作用。
Operator:Operator 资源会根据自定义资源(Custom Resource Definition,CRD)来部署和管理 Prometheus Server,同时监控这些自定义资源事件的变化来做相应的处理,是整个系统的控制中心。
Prometheus:Prometheus 资源是声明性地描述 Prometheus 部署的期望状态。·
Prometheus Server:Operator 根据自定义资源 Prometheus 类型中定义的内容而部署的 Prometheus Server 集群,这些自定义资源可以看作用来管理 Prometheus Server 集群的 StatefulSets 资源。
ServiceMonitor:ServiceMonitor 也是一个自定义资源,它描述了一组被 Prometheus 监控的 target 列表。该资源通过标签来选取对应的 ServiceEndpoint,让 Prometheus Server 通过选取的 Service 来获取 Metrics 信息。
Service:Service 资源主要用来对应 Kubernetes 集群中的 Metrics Server Pod,提供给 ServiceMonitor 选取,让 Prometheus Server 来获取信息。简单说就是 Prometheus 监控的对象,例如 Node Exporter Service、Mysql ExporterService 等。
Alertmanager:Alertmanager 也是一个自定义资源类型,由 Operator 根据资源描述内容来部署 Alertmanager 集群。
在 Kubernetes Node 上部署 Node exporter,获取该节点物理机或者虚拟机的监控信息,在 Kubernetes Master 上部署 kube-state-metrics 获取 Kubernetes 集群的状态。所有信息汇聚到 Prometheus 进行处理和存储,然后通过 Grafana 进行展示。
Kubernetes 下,Prometheus 通过与 Kubernetes API 集成主要支持 5 种服务发现模式:Node、Service、Pod、Endpoints、Ingress。不同的服务发现模式适用于不同的场景,例如:node 适用于与主机相关的监控资源,如节点中运行的 Kubernetes 组件状态、节点上运行的容器状态等;service 和 igress 适用于通过黑盒监控的场景,如对服务的可用性以及服务质量的监控;endpoints 和 pod 均可用于获取 Pod 实例的监控数据,如监控用户或者管理员部署的支持 Prometheus 的应用。
评论