如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 1
本系列将分成三个部分,您将学习如何使用 Helm 在 Kubernetes 上集成 Prometheus 和 Grafana,以及如何在 Grafana 上创建一个简单的控制面板。Prometheus 和 Grafana 是 Kubernetes 最受欢迎的两种开源监控工具。学习如何使用 Helm 集成这两个工具,使您能够轻松监控 Kubernetes 集群并排除故障。您还可以更深入地了解集群的健康状况和性能,它将跟踪 Kubernetes 集群上的资源和性能指标。
如前所述,Prometheus 和 Grafana 是用于监控容器编排平台的流行工具。最流行的两个容器编排工具是 Docker Swarm 和 Kubernetes。第一部分将为您介绍使用 Prometheus 和 Grafana 的前提条件,了解什么是 Prometheus 和 Grafana等。
前提条件
要跟上本指南,你需要:
- 安装 Docker:要在你的机器上安装 Docker,请查看 Docker 官方文档 https://www.docker.com/。
- 安装 Kubectl:这可以让你与 Kubernetes 集群通信。要在本地机器上安装 Kubectl 工具,请遵循 Kubectl 官方文档指南 https://kubernetes.io/docs/tasks/tools/。
- 掌握 Kubernetes 的基本知识:请确保你对 Kubernetes 有一定的了解。您可以阅读 Kubernetes 官方文档 https://kubernetes.io/ 来学习 K8s 相关知识。
- 建立 Kubernetes 集群:在Kubernetes 集群上安装 Prometheus 和 Grafana。本指南将使用 Minikube (快速指南 https://minikube.sigs.k8s.io/docs/start/)。这是一个免费的本地 Kubernetes 集群。
什么是 Prometheus?
Prometheus 是一款开源 DevOps 工具。它为 Kubernetes 等容器编排平台提供监控和实时警报功能,以时间序列数据的形式收集和存储来自平台的指标。其次,它具有监控容器编排平台的开箱即用功能,并且是 Grafana 等其他数据可视化库的数据源。
Prometheus 从 Kubernetes 集群收集的指标包括:
- Kubernetes 集群健康状况。
- CPU 状态
- 内存使用情况
- Kubernetes 节点状态。
- 潜在性能瓶颈报告。
- 性能指标
- 服务器资源
什么是 Grafana?
Grafana 是一款用于分析和交互式可视化的多平台、开源在线应用程序。当你将它连接到受支持的数据源(如 Prometheus)时,它能提供:
- 交互式控制面板
- 交互式图表
- 可视化图表
- 网络告警
无论数据源是什么,Grafana 都能为您查询、可视化和理解您的指标。除了 Prometheus,Grafana 还支持其他几个数据源,例如:
- InfluxDB
- AzureMonitor
- Datadog
- Graphite
- AWS CloudWatch。
- PostgreSQL
- Microsoft SQL Server (MSSQL)。
- Elasticsearch
- Google Cloud Monitoring
- MySQL
- Alertmanager
- Loki
您可以选择从头开始创建控制面板,或者导入 Grafana 已经提供的控制面板,并对其进行定制以满足您的需求。大多数 DevOps 专业人员都使用 Grafana 和 Prometheus 来创建具有数据可视化控制面板的强大时序数据库。
在这里,我们将创建一个仪表板,用于可视化从 Prometheus 数据源收集的指标。
Prometheus 的架构
下图显示了 Prometheus 的组件和工作原理:

这些都是 Prometheus 的组件:
- Prometheus Server是 Prometheus 架构的核心组件。它是实际监控工作进行的地方。
- Alertmanager 通过电子邮件和其他通信渠道(如 Slack)向用户发送告警。
- Pushgateway 可支持临时任务。它允许用户将时间序列数据推送到 Prometheus 目标。它还能处理短期任务的指标。
Prometheus 服务器可进一步分为三个组件:
- Data Retrieval Worker 从容器编排平台中抓取并收集度量数据。然后,它将指标转换为时间序列数据。它从许多来源收集指标,这些来源在其设置中指定。
- Time Series Database 存储来自数据检索组件的时间序列数据。
- HTTP Server 响应时间序列数据的请求和 PromQL 查询。然后,它将信息显示在网络用户界面或仪表板上。它既可以使用 Grafana 等第三方平台,也可以使用内置的 Prometheus Web UI。
设置 Prometheus 和 Grafana 以监控容器编排平台的好处
设置 Prometheus 和 Grafana 进行监控能给我们带来很多好处:
- 可以获得一套完整的端到端解决方案,用于观察和监控 Kubernetes 集群。
- 可以使用 Prometheus PromQL 查询语言查询指标。
- 如果你有一个微服务架构,Prometheus 会同时跟踪你的所有微服务。
- 当某个服务出现故障时,会立即发出警报。
- Grafana 仪表盘提供集群的性能和健康状况报告。
在 Kubernetes 上集成 Prometheus 和 Grafana 时,开发人员普遍采用两种方法:
手动 Kubernetes 部署:在这种方法中,开发人员需要编写 Kubernetes 部署和服务 YAML 文件。需要为 Prometheus 和 Grafana 应用程序编写 YAML。在 YAML 文件中,指定在 Kubernetes 上集成 Prometheus 和 Grafana 的所有配置。然后,把这些文件部署到 Kubernetes 集群,以便 Prometheus 和 Grafana 正常工作。不过这种方法的弊端是开发人员可能会有很多 YAML 文件,这对大多数 DevOps 实践者来说都是令人厌烦的。如果在任何 YAML 文件中出错,将无法在 Kubernetes 上集成 Prometheus 和 Grafana。
使用 Helm:这是将应用容器部署到 Kubernetes 的最简单易行的方法。Helm 是 Kubernetes 的官方软件包管理器。有了 Helm,你可以简化 Kubernetes 应用程序的安装、部署和管理。Helm 将 Kubernetes 应用程序打包并捆绑到 Helm Chart中。
Helm Chart是所有 YAML 文件的集合:
- 部署
- 服务
- 密钥
- ConfigMaps Manifests
您将使用这些文件把应用容器部署到 Kubernetes。Helm 允许用户下载已有清单 YAML 文件的 Helm Chart,而不是为每个应用容器创建单独的 YAML 文件。
如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 1的更多相关文章
- helm在k8s上部署Elasticsearch和Kibana
前提 在win上安装docker desktop,没有网络限制,而且,打开kubernetes之后,很快就安装启动好了. 在win上安装scoop,有网络限制,需要访问github raw的文件内容, ...
- 【集群监控】Docker上部署Prometheus+Alertmanager+Grafana实现集群监控
Docker部署 下载 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.re ...
- 部署 Prometheus 和 Grafana 到 k8s
在 k8s 中部署 Prometheus 和 Grafana Intro 上次我们主要分享了 asp.net core 集成 prometheus,以及简单的 prometheus 使用,在实际在 k ...
- 有状态软件如何在 k8s 上快速扩容甚至自动扩容
概述 在传统的虚机/物理机环境里, 如果我们想要对一个有状态应用扩容, 我们需要做哪些步骤? 申请虚机/物理机 安装依赖 下载安装包 按规范配置主机名, hosts 配置网络: 包括域名, DNS, ...
- asp.net core 集成 Prometheus
asp.net core 集成 prometheus Intro Prometheus 是一个开源的现代化,云原生的系统监控框架,并且可以轻松的集成 PushGateway, AlertManager ...
- 手把手教你玩转 Gitea|使用 Helm 在 K3s 上安装 Gitea
前言 在前面的文章中,演示了如何用 Docker 镜像和 Windows 二进制包来安装运行 Gitea.今天是玩转 Gitea 系列的使用 Helm 在 K3s 上安装 Gitea. 关于 Gite ...
- 在k8s上安装Jenkins及常见问题
持续集成和部署是DevOps的重要组成部分,Jenkins是一款非常流行的持续集成和部署工具,最近试验了一下Jenkins,发现它是我一段时间以来用过的工具中最复杂的.一个可能的原因是它需要与各种其它 ...
- 在k8s上部署日志系统elfk
日志系统elfk 前言 经过上周的技术预研,在本周一通过开会研究,根据公司的现有业务流量和技术栈,决定选择的日志系统方案为:elasticsearch(es)+logstash(lo)+filebea ...
- gitlab在k8s上运行的一些优化
由 林坤创建,最终由 林坤修改于七月02,2020 gitlab组件图 gitlab在k8s上占用资源 kubectl top pods -n default | grep git* gitlab-g ...
- 优化:在k8s上部署的gitlab
gitlab组件图 gitlab在k8s上占用资源 # kubectl top pods -n default | grep git* gitlab-gitaly-0 9m 444Mi gitlab- ...
随机推荐
- 谈一谈电商API接口
随着电商行业的快速发展,越来越多的企业开始意识到并利用API接口来提升其电商平台的功能和效率.但是,对于普通用户来说,对API接口可能还不太了解.那么,什么是API接口,特别是电商API接口呢?本文将 ...
- Node.js 使用 officecrypto-tool 读取加密的 Excel (xls, xlsx) 和 Word( docx)文档
Node.js 使用 officecrypto-tool 读取加密的 Excel (xls, xlsx) 和 Word( docx)文档, 还支持 xlsx 和 docx 文件的加密(具体使用看文档) ...
- Linux下Python环境安装
Linux通常都附带Python环境,但是Linux附带的大多数Python都是2.7.5版本.如果我们想使用Python3或者Anaconda3,最好安装一个新的Python3环境,但不要尝试删除P ...
- 现代 CSS 解决方案:原生嵌套(Nesting)
很早之前,就写过一篇与原生嵌套相关的文章 -- CSS 即将支持嵌套,SASS/LESS 等预处理器已无用武之地?,彼时 CSS 原生嵌套还处于工作草案 Working Draft (WD) 阶段,而 ...
- GIS中的ROI文件可否由.xml格式转为.roi格式?
本文介绍在ENVI软件中,将用户自行绘制的.xml格式的感兴趣区(ROI)文件转换为.roi格式的方法. 对于ENVI软件,其在早期版本中,默认将用户所绘制的感兴趣区文件保存为.roi格式:而 ...
- 【火坑】一切从TimeSpan说起
小编在编写WPF程序时,需要做一个判断:定时使用Modbus协议使用Quartz.net 定时任务读取设备中的数据,同时也使用定时任务判断是否长时间获取不到数据的情况,如果程序中超过一分钟没有获取到数 ...
- oracle监听配置与防火墙问题
在建好pdb容器后,需配置网络,才能从客户端连接服务器端 1.首先查看pdb容器的服务名 lsnrctl status ... Service "19cdb" has 1 inst ...
- 【PHP正则表达式】
[PHP正则表达式] 最近写题总是遇到php正则表达式的匹配函数,于是进行一个总结. 1.什么是正则表达式 是php在进行搜索时用于匹配的模式字符串.一般用于php对特定字符序列的替换和搜索. 2.正 ...
- 安信可开发环境构建-基于Ai-WB2系列 和 Ai-M61 或 Ai-M62 (环境上下文切换)
首先,对于Ai-WB2系列环境的构建官方文档已经讲的非常明白了,这里不做阐述如下链接所示https://blog.csdn.net/Boantong_/article/details/12848091 ...
- 概率期望 DP 题解合集
期望这东西学了一次忘了,再学一次过了两天又不会了.我是鱼. 故写此博客以便加深记忆及日后复习. NOIP 前恶补期望(? 希望有用,RP++() 经典问题 1 某事件发生概率为 \(p\),则该事件首 ...