美文网首页
Prometheus Operator管理

Prometheus Operator管理

作者: Rami | 来源:发表于2023-10-18 14:25 被阅读0次

1.Prometheus Operator的工作原理

从概念上来讲Operator就是针对管理特定应用程序的,在Kubernetes基本的Resource和Controller的概念上,以扩展Kubernetes api的形式。帮助用户创建,配置和管理复杂的有状态应用程序。从而实现特定应用程序的常见操作以及运维自动化。

2.Prometheus Operator四类资源

Prometheus:声明式创建和管理Prometheus Server实例;
ServiceMonitor:负责声明式的管理监控配置;
PrometheusRule:负责声明式的管理告警配置;
Alertmanager:声明式的创建和管理Alertmanager实例。

2.1查看各类资源下的实例

Prometheus(prometheus-server服务)

kubectl get prometheuses.monitoring.coreos.com  -n monitoring
NAME   VERSION   REPLICAS   AGE
k8s    2.32.1    1          6d20h

ServiceMonitor(各种监控配置)

kubectl get servicemonitors.monitoring.coreos.com  -n monitoring
NAME                      AGE
alertmanager-main         6d20h
blackbox-exporter         6d20h
coredns                   6d20h
grafana                   6d20h
kube-apiserver            6d20h
kube-controller-manager   6d20h
kube-scheduler            6d20h
kube-state-metrics        6d20h
kubelet                   6d20h
node-exporter             6d20h
prometheus-adapter        6d20h
prometheus-k8s            6d20h
prometheus-operator       6d20h

PrometheusRule(各种告警配置)

kubectl get prometheusrules.monitoring.coreos.com  -n monitoring
NAME                              AGE
alertmanager-main-rules           6d20h
kube-prometheus-rules             6d20h
kube-state-metrics-rules          6d20h
kubernetes-monitoring-rules       6d20h
node-exporter-rules               6d20h
prometheus-k8s-prometheus-rules   6d20h
prometheus-operator-rules         6d20h

Alertmanager(alertmanager服务)

kubectl get alertmanagers.monitoring.coreos.com -n monitoring
NAME   VERSION   REPLICAS   AGE
main   0.23.0    1          6d20h

3.介绍每个服务、端口的作用及采集端点

3.1 prometheus-k8s(监控服务端)

prometheus-k8s          ClusterIP   192.168.164.132   <none>        9090/TCP,8080/TCP            6d20h

Port 9090:默认监听端口
9090 端口是 Prometheus Server 的主要 HTTP API 端口。
Prometheus 用户可以使用这个端口来查询、检索和查看监控数据,以及执行 PromQL 查询来生成图形和警报规则。

Port 8080:默认监听端口
8080 端口通常是 Prometheus Pushgateway 的默认监听端口。
Pushgateway 是一个中间代理,允许短期任务(如批处理任务或短暂服务)将其指标数据推送到 Prometheus。Pushgateway 将这些数据保留,使其可以被 Prometheus Server 拉取。

采集端点:http://podIP:9090/metricshttp://podip:8080/metrics

3.2 prometheus-adapter

prometheus-adapter      ClusterIP   192.168.82.52     <none>        443/TCP                      6d20h

它的主要作用是将 Prometheus 中的监控指标(metrics)转换为 Kubernetes 的自定义指标(Custom Metrics)。这样,Kubernetes 可以根据这些自定义指标来自动伸缩应用程序副本、管理资源分配和进行其他决策。

采集端点:https://podIP:6443/metrics

3.3 node-exporter

node-exporter           ClusterIP   None              <none>        9100/TCP                     6d20h

作用:收集节点的cpu、内存、磁盘等硬件信息
Port 9100:默认监听端口

3.4 kubelet

kubelet         ClusterIP      None              <none>         10250/TCP,10255/TCP,4194/TCP   8d

采集端点:
https://podIP:10250/metrics
https://podIP:10250/metrics/cadvisor
https://podIP:10250/metrics/probes

10250/metrics:
这是 kubelet 的默认监控端点,提供与 kubelet 本身相关的监控数据。
这些指标包括了 kubelet 的运行状况、节点资源使用情况和其他与 kubelet 运行有关的信息。
Prometheus 或其他监控工具可以使用此端点来抓取 kubelet 的性能数据以进行监控和警报。

10250/metrics/cadvisor:
10250/metrics/cadvisor 端点提供与容器监控相关的数据,特别是使用 cAdvisor (Container Advisor) 工具收集的容器相关指标。
cAdvisor 是一个用于监控容器资源使用的开源工具,kubelet 集成了 cAdvisor 来获取容器的性能指标。
Prometheus 或其他监控工具可以使用此端点来抓取容器的性能数据,如 CPU 使用率、内存使用率等。

10250/metrics/probes:
10250/metrics/probes 端点用于探测 kubelet 的运行状况。
这个端点提供了用于检查 kubelet 是否运行正常的指标,包括 kubelet 健康检查、活动状态检查和就绪状态检查等。
监控工具或健康检查工具可以使用此端点来确保 kubelet 服务正常工作。

3.5 kube-state-metrics

主要作用:
提供 Kubernetes 资源状态数据:
kube-state-metrics 通过 API Server 查询 Kubernetes 集群的资源对象(例如,Pods、Nodes、Services)的状态信息。
它将这些状态信息转化为 Prometheus 格式的指标,使其能够被 Prometheus Server 捕获。

启用灵活的监控和警报规则:
Prometheus 是一个强大的监控系统,但它需要指标数据以便执行查询和创建警报规则。
kube-state-metrics 为 Prometheus 提供了丰富的 Kubernetes 集群状态信息,使用户能够编写自定义查询和警报规则来监视集群的各种状态。

3.6 blackbox-exporter

主要作用是执行针对网络应用和服务的主动健康检查和探测,以收集关于这些应用和服务的信息,将其转换为 Prometheus 格式的指标,并提供给 Prometheus 进行监控和警报。
Blackbox Exporter 支持多种协议,包括 HTTP、HTTPS、TCP、ICMP、DNS 等,以便监控各种类型的服务和应用程序。

3.7 grafana 可视化展示

3.8 Alertmanager 告警管理

相关文章

网友评论

      本文标题:Prometheus Operator管理

      本文链接:https://www.haomeiwen.com/subject/aihcidtx.html