90DaysOfDevOps 第 83 天:Grafana 数据可视化与 Prometheus Operator 监控栈实战

发布时间:2026/10/7 9:50:31

90DaysOfDevOps 第 83 天:Grafana 数据可视化与 Prometheus Operator 监控栈实战 文档/教程【免费下载链接】90DaysOfDevOpsThis repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.项目地址https://gitcode.com/gh_mirrors/90/90DaysOfDevOps点击查看免费下载Grafana 是开源社区最流行的指标可视化平台本文基于 90DaysOfDevOps 可观测性章节2022 年第 83 天的实战文档讲解 Grafana 与 Kibana 的定位差异并在 minikube 集群中通过 kube-prometheus 一键部署 Prometheus Alertmanager Grafana 监控栈完成数据源接入、自定义面板绘制与预置 Kubernetes 仪表盘导入最终掌握一套从裸指标到可视化看板的完整工作流。Grafana 与 Kibana监控Metrics与日志Logging的定位分野在本章节前几篇里我们通过 EFK StackDay 82 大量接触了 Kibana 做日志可视化但可观测性世界中还有另一条主线——指标监控这正是 Grafana 的舞台。两者并不相同也并非完全竞争关系而是一套可观测性体系中的互补组件。Kibana 的核心是日志检索与分析Kibana 的核心能力是数据查询与分析。用户通过多种检索方式在 Elasticsearch 中已建立索引的数据里搜索特定事件或字符串用于根因分析root cause analysis与故障诊断。基于查询结果Kibana 提供图表、表格、地理地图等多种可视化形态。Grafana 出身于 Kibana 的分支专注指标监控Grafana 最初其实是 Kibana 的一个分支其目标是补齐 Kibana 当时缺失的指标metrics监控能力。如今 Grafana 是一款免费开源的通用数据可视化工具在真实生产环境中最常见的是Prometheus Grafana组合也会见到 Grafana 与 Elasticsearch、Graphite 等后端搭配使用。两者的关键差异可以用一句话概括日志 vs 监控。本章节前面已经依次覆盖了 Nagios主机监控、Prometheus指标监控以及 ELK/EFK日志采集与检索现在轮到把指标画出来的 Grafana维度GrafanaKibana定位指标metrics分析、可视化与告警日志logs全文检索与分析典型后端Prometheus、Graphite、InfluxDB、Elasticsearch 等运行在 Elasticsearch 之上数据能力面向 CPU、内存、磁盘、I/O 等系统指标聚合展示面向日志消息的全文查询、诊断全文检索不提供全文数据查询核心功能支持字符串与事件搜索部署形态Linux / Mac / Windows / Docker / 源码构建Linux / Mac / Windows / Docker / 源码构建无论是虚拟化平台、云平台还是云原生环境Grafana 都是横跨各层基础设施最常见的可视化工具这正是它在本章被单独讲解的原因。Prometheus Operator Grafana 部署实战基于 minikube单独在 Prometheus 界面里翻看指标既繁琐也难以规模化这正是 Grafana 存在的意义把 Prometheus 数据库采集并存储的指标以交互式图表、自定义图形和告警规则呈现出来。下面我们在一台 minikube 集群上复现完整流程。环境准备与项目克隆本实战沿用前面章节的 minikube 集群。如果之前没有启动集群先执行minikube start然后克隆 kube-prometheus 项目到本地git clone https://github.com/prometheus-operator/kube-prometheus.git cd kube-prometheuskube-prometheus 是基于 Prometheus Operator 的完整监控栈清单集合包含 Prometheus、Alertmanager、Grafana 与一系列 ServiceMonitor 规则开箱即可获得一套生产级监控能力。创建监控命名空间与基础 CRD第一步是在集群中创建监控所需的命名空间以及 Prometheus Operator 依赖的自定义资源定义CRDkubectl create -f manifests/setup这一步会创建monitoring命名空间以及 Prometheus、Alertmanager、ServiceMonitor、PrometheusRule 等 CRD。部署整个监控栈接着部署演示所需的一切资源kubectl create -f manifests/该命令会在集群内下发大量资源包括 Prometheus StatefulSet、Alertmanager、Grafana Deployment、各类 Service、ServiceMonitor 与告警规则。可参考仓库中的 Prometheus 监控栈相关清单Monitoring 目录 理解这类 YAML 清单的组织方式。等待 Pod 就绪并核对资源用观察模式持续关注 Pod 状态kubectl get pods -n monitoring -w全部运行后确认健康状态kubectl get pods -n monitoring随后检查本演示稍后会用到的各类 Servicekubectl get svc -n monitoring最后查看监控命名空间内的全部资源kubectl get all -n monitoring在健康状态下你应能看到 Grafana、Prometheus、Alertmanager 相关的 Pod 均处于 Running并伴随对应的 Service 暴露在集群内。连接 Grafana登录、数据源与首个面板端口转发访问 Grafana新开一个终端将 Grafana Service 转发到本机 3000 端口kubectl --namespace monitoring port-forward svc/grafana 3000浏览器访问http://localhost:3000会看到登录提示。默认凭据为Username: admin Password: admin首次登录时系统会强制要求修改密码。登录后的首页会展示探索区域与学习资源其中两个关键入口——Add your first data source添加你的第一个数据源与Create your first dashboard创建你的第一个仪表盘——正是接下来的操作核心。配置 Prometheus 数据源kube-prometheus 部署完成后Grafana 中通常已经预置了一个 Prometheus 数据源但由于 minikube 网络隔离还需要把 Prometheus 也转发到本机kubectl --namespace monitoring port-forward svc/prometheus-k8s 9090回到 Grafana 首页进入 Add your first data source 组件选择Prometheus作为数据源类型。填写URLhttp://localhost:9090访问方式Access将下拉选项切换为Browser浏览器直连点击页面底部的Save Test保存并测试。只要 Prometheus 的端口转发正常即可看到连接成功的提示意味着 Grafana 与 Prometheus 的数据通道已经打通。创建自定义指标面板回到首页进入 Create your first dashboard选择Add a new panel添加新面板。此时面板默认使用 Grafana 内置数据源我们将其切换为我们刚创建的Prometheus-1数据源。打开Metrics browser指标浏览器能看到 Prometheus 从 minikube 集群采集到的长串指标列表。演示中选择展示系统资源类指标cluster:node_cpu:ratio{}该指标能够输出集群节点的 CPU 使用比例明细足以验证这套集成已经生效。确认可视化效果满意后点击右上角Apply应用按钮即可将这张图加入仪表盘。后续可以继续添加更多图形与其他图表组合出自己需要的视图。复用社区预置仪表盘无需从零重新发明轮子Grafana 生态中已有成千上万个现成仪表盘可直接复用。进入 Grafana 的仪表盘市场并搜索Kubernetes会得到一长串预构建看板列表。本文演示选择了Kubernetes API Server 仪表盘将数据源改为新添加的Prometheus-1后即可看到 API Server 的 SLO 可用性、错误预算、API 请求量、请求错误率、请求延迟等多维度指标面板。这是快速获得生产级可观测视图的高效路径。告警链路Alertmanager 与 Slack 等集成部署监控栈时已经一并部署了 Alertmanager可以进一步将告警发送到 Slack 或其他集成通道。将 Alertmanager 服务转发到本机kubectl --namespace monitoring port-forward svc/alertmanager-main 9093随后访问http://localhost:9093即可进入 Alertmanager 的告警管理界面。配合 Grafana 的面板告警规则与 Prometheus 的告警规则可以实现完整的采集 → 可视化 → 告警 → 通知闭环。本章小结与下一步本章作为 90DaysOfDevOps 可观测性章节的收官之作串起了指标Nagios、Prometheus、Grafana、日志ELK/EFK与告警Alertmanager这条完整链路Prometheus 负责采集与存储指标Grafana 负责交互式可视化与告警展示Alertmanager 负责告警分发。无论指标、日志还是链路追踪在自动化带来的环境快速变化下工程师都必须对自己广泛的环境状态了如指掌。下一节开始将进入数据管理主题探讨 DevOps 原则如何同样适用于数据管理场景。本系列其余内容可继续阅读 Day 84 及本章节前面的 Day 81Fluentd FluentBit、Day 82EFK Stack。赞分享文档/教程【免费下载链接】90DaysOfDevOpsThis repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.项目地址https://gitcode.com/gh_mirrors/90/90DaysOfDevOps点击查看免费下载相关推荐90DaysOfDevOps 第 83 天Grafana 指标可视化与 Prometheus 集成实战90DaysOfDevOps 第 83 天Grafana 指标可视化与 Prometheus 集成实战 本文是 90DaysOfDevOps 可观测性系列中关文档/教程90DaysOfDevOps 第 83 天Grafana 数据可视化实战 —— 基于 kube-prometheus 打造 Kubernetes 监控看板与告警90DaysOfDevOps 第 83 天Grafana 数据可视化实战 —— 基于 kube prometheus 打造 Kubernetes 监控看板与告文档/教程90DaysOfDevOps 可观测性实战Prometheus Operator 与 Grafana 指标可视化部署指南90DaysOfDevOps 可观测性实战Prometheus Operator 与 Grafana 指标可视化部署指南 Grafana 是开源生态中最常用的文档/教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/7 9:50:31

Agent Skills实战:marketingskills技能包开发与SEO应用指南

1. 从"marketingskills"这个仓库名说起:它到底想解决什么问题第一次看到marketingskills这个名字,我的直觉是:这大概率不是一个营销工具库,而是一套给 AI Agent 用的"营销技能包"。事实也确实如此。它属于Age…

2026/10/7 10:40:43

信捷XDH EtherCAT总线回原点:A_ZRN指令详解与实战避坑

1. 信捷XDH EtherCAT总线回原点到底在解决什么问题 1.1 从一台伺服找不准零点说起 做过运动控制的朋友大概率都遇到过这种场景:设备断电重启之后,机械臂或者滑台的位置跟断电前对不上,要么撞限位,要么加工出来的第一个件直接报废…

2026/10/7 10:40:43

Altium Designer禁止区域原理与实战指南

1. 为什么AD16的禁止区域总让人“挪不动”?——先搞懂它到底在管什么 Altium Designer 16(AD16)里的“禁止区域”(Keep-Out Layer,常被误称为Board Cutout),不是个可有可无的装饰层,…

2026/10/7 10:40:43

用Postman测WebSocket接口:从握手、心跳到自动化断言全攻略

以前我一直觉得,Postman 测 WebSocket 是个“伪需求”。HTTP 接口用 Postman 顺手得很,WebSocket 这种长连接、双向推送的东西,随便开个网页控制台或者写几行 Node 脚本不就完事了吗?直到后来真负责了一个实时消息服务的接口测试&…

2026/10/7 10:40:43

QuickBlue:Java企业级AI应用运行时底座

1. QuickBlue 不是又一个“AI中台”,而是企业跑通AI应用的最小可行基建QuickBlue 是什么?先说结论:它不是封装好的AI模型调用平台,也不是带UI的低代码AI构建器,更不是把LangChain、LlamaIndex再包一层的“AI套壳”。它…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/7 8:18:33

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/6 17:46:51

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

ESP32免重刷固件:浏览器直接修改NVS键值实现WiFi配置更新

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

SAP HANA查询结果导出CSV:避开乱码、性能与权限的实用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

数字后端Placement阶段Density与Congestion控制实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑