90DaysOfDevOps Day 83:Grafana 数据可视化实战——基于 kube-prometheus 与 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 是开源领域最常用的指标可视化工具与 Prometheus 搭配几乎是云原生监控的事实标准。本文基于 90DaysOfDevOps 项目 Day 83 原文本仓库同时提供 越南语版本完整梳理 Grafana 与 Kibana 的定位差异并带你用kube-prometheus在 minikube 上从零搭建「Prometheus 采集 Grafana 可视化 Alertmanager 告警」的完整观测链路。学完本文你将掌握 Grafana 的部署、数据源接入、面板创建、模板复用与告警转发全流程并能在本地集群直接复现。Grafana 与 Kibana并非同一种工具在可观测性Observability章节中我们已经在 ELK / EFK 部分大量接触了 Kibana但 Kibana 与 Grafana 并不相同也并非完全竞争的关系Kibana 的核心能力是数据查询与日志分析用户通过多种方式在 Elasticsearch 索引的数据中检索特定事件或字符串用于根因分析root cause analysis与诊断并基于这些查询使用图表、表格、地理地图等可视化能力Grafana 最初正是 Kibana 的一个 fork其目标是补齐 Kibana 当时不提供的指标metrics监控支持两者最大的分野是Logging日志vs Monitoring监控Grafana 面向系统 CPU、内存、磁盘、I/O 利用率等指标的分析与可视化不支持全文检索而 Kibana 运行在 Elasticsearch 之上主要用于分析日志消息。在实践中Prometheus 与 Grafana 常常成对出现但 Grafana 也可以对接 Elasticsearch、Graphite 等数据源。与 Kibana 一样Grafana 部署简单且部署位置灵活支持 Linux、macOS、Windows、Docker 以及从源码构建等多种方式。在本仓库中Day 78 的 Prometheus 实战 和 Day 80 的 ELK Stack 实战 分别铺垫了监控与日志两条主线Day 83 正是把两者统一到可视化层的关键一环。为什么需要 Grafana让指标可交互、可扩展Prometheus 本身有 Web UI 可用于查询指标但直接在 Prometheus 或任何指标工具中逐个翻查指标既笨重也不具备扩展性。Grafana 的价值在于把 Prometheus 数据库采集、存储的指标变成可交互的可视化界面并支持针对环境创建自定义图表charts、图形graphs与告警alerts。仓库佐证本仓库 Monitoring 目录 同时收录了 EFK Stack 的 efk-stack.yaml 与 Elastic Stack 的 docker-compose.yaml分别对应日志链路与搜索分析链路而本文的 Grafana 则负责指标链路的可视化层三者合起来即覆盖「指标 日志 可视化」的完整可观测性视图。环境准备启动 minikube 并克隆 kube-prometheus本次演练使用本地minikube 集群。如果你没有跟随前面的章节操作可以先用以下命令启动一个新集群minikube start随后将prometheus-operator/kube-prometheus项目克隆到本地并进入目录——该项目提供了「Prometheus Operator Prometheus Grafana Alertmanager」的一整套可运行清单manifestsgit clone https://github.com/prometheus-operator/kube-prometheus.git cd kube-prometheus提示kube-prometheus是一个由 Prometheus Operator 驱动的一站式部署集它把通常需要手工拼装的监控组件Prometheus 服务器、Grafana、Alertmanager、各种 exporter 与告警规则以统一的 manifest 形式组织起来是云原生场景下最常见的监控栈装配方式。部署监控栈创建命名空间与全部组件克隆完成后第一步是在 minikube 集群中创建监控所需的基础资源命名空间、CRD 等。这里分两步执行1. 创建基础资源namespace 与 CRDkubectl create -f manifests/setup2. 部署 Demo 所需的全部监控组件kubectl create -f manifests/正如原文演示所展示第二条命令会在集群内一次性部署大量不同类型的资源Prometheus、Grafana、Alertmanager、kube-state-metrics、node-exporter 等这也是 Operator 模式「以少量 manifest 管理复杂组件」的直观体现。部署后需要等待 Pod 初始化完成并进入运行状态可用如下命令持续观察kubectl get pods -n monitoring -w当一切就绪后逐项核对部署结果# 检查所有 Pod 均处于 Running 且健康状态 kubectl get pods -n monitoring # 查看本次部署的服务后续演示会用到 kubectl get svc -n monitoring # 查看 monitoring 命名空间下部署的所有资源 kubectl get all -n monitoring访问 Grafana端口转发与首次登录新开一个终端将 Grafana 服务转发到本地 3000 端口kubectl --namespace monitoring port-forward svc/grafana 3000浏览器访问http://localhost:3000会提示输入用户名和密码。kube-prometheus 默认凭据为Username: admin Password: admin首次登录时会被要求设置一个新密码。登录后的首页会展示若干可探索的入口以及官方资源请特别留意Add your first data source添加第一个数据源与create your first dashboard创建第一个仪表盘两个小部件后面都会用到。接入 Prometheus 数据源数据源、访问模式与连通性测试部署 kube-prometheus 时集群内已经为 Grafana 预先注册了一个 Prometheus 数据源。但由于我们使用的是 minikubePrometheus 服务并不能直接从浏览器访问因此需要先把 Prometheus 也转发到本地kubectl --namespace monitoring port-forward svc/prometheus-k8s 9090然后在 Grafana 首页点击Add your first data source小部件选择Prometheus填写URLhttp://localhost:9090即上面端口转发后的本地地址Access访问模式下拉框选择Browser浏览器——这点很关键它意味着 Grafana 后端不直接访问 Prometheus而是由你的浏览器经端口转发链路去拉取数据是本地演练场景下绕过网络隔离的常用做法页面底部点击Save test保存并测试。只要 Prometheus 的端口转发正常工作就会看到连接成功的提示创建第一个 Dashboard用 PromQL 展示节点 CPU 指标回到 Grafana 首页找到Create your first dashboard创建第一个仪表盘选择Add a new panel添加新面板。默认情况下新面板从 Grafana 自带数据源抓取数据需要把面板的数据源切换到我们刚创建的数据源例如命名为Prometheus-1。切换后在Metrics browser指标浏览器中可以看到来自 Prometheus、与 minikube 集群相关的长长指标列表——这正是 Prometheus 通过 kube-prometheus 的采集配置自动抓取到的指标全集。演示中我们选择一条能反映系统资源的指标来验证集成是否打通cluster:node_cpu:ratio{}该指标聚合了集群各节点的 CPU 使用率比例返回集群中节点的相关细节从而证明「Prometheus 采集 → Grafana 可视化」链路已经工作。面板配置满意后点击右上角Apply应用该图表即被添加到仪表盘。之后可以继续添加更多图表与其他可视化逐步构建出自己需要的监控视图复用社区 Dashboard不必从零造轮子除了手工创建面板Grafana 还提供了数以千计的预构建 Dashboard 模板可以直接导入使用避免重复造轮子在 Dashboard 搜索/导入界面搜索Kubernetes即可看到一长串预构建的 Kubernetes 相关面板本演示选择Kubernetes API Server面板将其数据源切换为我们新增的Prometheus-1数据源即可立刻看到一批 API Server 相关的指标展示。这种「模板 自有数据源」的组合方式是 Grafana 在生产环境中快速落地的核心技巧先用社区成熟面板覆盖常见观测目标再按需微调或叠加自定义面板。告警通过 Alertmanager 转发到 Slack 等外部集成kube-prometheus 默认部署了Alertmanager可以利用它把告警发送到 Slack 或其他外部集成。为此需要将 Alertmanager 服务转发到本地kubectl --namespace monitoring port-forward svc/alertmanager-main 9093然后浏览器访问http://localhost:9093即可查看 Alertmanager 的告警界面Silences、Alerts、Status 等。在真实场景中只需在 Alertmanager 配置中声明 Slack、邮件等接收器receiver的路由规则Prometheus 触发的告警就会自动送达对应渠道。小结可观测性章节收官与下一步至此可观测性Observability章节告一段落。本章涵盖面极广——从 Nagios 到 Prometheus 的监控metrics再到 ELK / EFK 的日志logging最后以 Grafana 完成指标的可视化与告警alerting。正如 Day 83 原文所强调的无论指标、日志还是追踪tracing在环境因自动化而剧烈变化、规模不断扩张的背景下掌握环境内正在发生什么是运维与平台工程角色的核心功课。下一节将进入数据管理Data Management讨论 DevOps 原则如何适用于数据治理领域见 Day 84。进一步阅读Day 78Prometheus 实战部署Kubernetes 下的 Pull 模型与 PushGateway/AlertManager 架构Day 80ELK Stack 日志可视化与 Prometheus Grafana 的日志 vs 指标对比EFK Stack 日志链路示例配置Elastic Stack 本地 Docker Compose 部署Kibana 部分配置Kibana 配置文件示例赞分享文档/教程【免费下载链接】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 Operator 监控栈实战90DaysOfDevOps 第 83 天Grafana 数据可视化与 Prometheus Operator 监控栈实战 Grafana 是开源社区最流行的文档/教程90DaysOfDevOps 第 83 天Grafana 数据可视化实战 —— 基于 kube-prometheus 打造 Kubernetes 监控看板与告警90DaysOfDevOps 第 83 天Grafana 数据可视化实战 —— 基于 kube prometheus 打造 Kubernetes 监控看板与告文档/教程在 Kubernetes 集群中部署 kube-prometheus 监控插件Prometheus Operator、Grafana 与高可用监控实践在 Kubernetes 集群中部署 kube prometheus 监控插件Prometheus Operator、Grafana 与高可用监控实践 本文基文档教程云原生上一篇如何3分钟搞定OFD转PDF完全免费的开源工具Ofd2Pdf终极指南下一篇抖音无水印下载神器三步搞定高清视频保存的终极方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考