内容提要
Prometheus 是一款开源的监控、报警和时间序列数据库,最初由 SoundCloud 开发,广泛应用于 Kubernetes。Prometheus Operator 简化了监控配置,提供自动化的监控目标生成和报警管理功能。用户可通过 Grafana 实现灵活的数据可视化。配置和安装过程包括使用 YAML 文件和 Helm Chart,支持多种部署方式。
延伸解读
版本兼容性:安装前必须核对
文章给出的兼容表显示,kube-prometheus 各版本对 Kubernetes 版本有严格对应关系:release-0.6 仅支持 1.19,release-0.7 支持 1.19 和 1.20,release-0.8 则支持 1.20 和 1.21。本文环境为 Kubernetes 1.19.5,因此选用 0.7.0 版本。若版本不匹配,可能导致组件无法正常运行,安装前务必先查表确认。
安装顺序:先 Operator 后自定义资源
文章强调,必须先执行 kubectl apply -f setup/ 安装 Operator 及其 CRD,并等待 prometheus-operator Pod 进入 Running 状态,再安装其他组件。这是因为 Prometheus、Alertmanager、ServiceMonitor 等自定义资源依赖 Operator 控制器才能生效。若顺序颠倒,自定义资源将无法被正确识别和处理。
自动发现:用注解替代手工配置
文章通过 prometheus-additional.yaml 定义 kubernetes-service-endpoints 任务,并借助 relabel_configs 筛选带有 prometheus.io/scrape=true 注解的 Service。用户只需在 Service 或 Pod 上添加 prometheus.io/scrape、prometheus.io/path、prometheus.io/port 三个注解,即可被自动纳入监控,大幅减少逐个手动添加 target 的工作量。
告警渠道:企业微信与钉钉的配置要点
文章分别演示了企业微信和钉钉告警。企业微信需在 alertmanager.yaml 中填写 agent_id、api_secret、corp_id、to_user 等参数,并通过 Secret 挂载自定义模板;钉钉则需部署 prometheus-webhook-dingtalk,配置 webhook 地址和消息模板。两者都依赖正确的密钥和模板文件,配置后需验证容器内文件是否更新成功。
Q&A
Prometheus 是什么?
Prometheus 是一款开源的监控、报警和时间序列数据库,最初由 SoundCloud 开发。
Prometheus Operator 的主要功能是什么?
Prometheus Operator 简化了监控配置,提供自动化的监控目标生成和报警管理功能。
如何在 Kubernetes 中安装 Prometheus?
在 Kubernetes 中安装 Prometheus 可以通过 YAML 文件手动部署、使用 Operator 部署或通过 Helm Chart 部署。
Prometheus 是如何收集监控数据的?
Prometheus 使用 Pull 方式收集监控指标数据,并将其保存在时间序列数据库中。
Grafana 在 Prometheus 中的作用是什么?
Grafana 用于实现灵活的数据可视化,用户可以通过它展示 Prometheus 收集的监控数据。
Prometheus 的架构包含哪些组件?
Prometheus 的架构包括 Prometheus Server、ServiceMonitor 和 Alertmanager 等组件。