Kubernetes 监控之 Prometheus+Grafana 搭建教程

阅读时长 6 分钟读完

前言

随着云原生和 Kubernetes 的发展,Kubernetes 监控变得越来越重要。而 Prometheus 和 Grafana 组合,已成为目前最受欢迎的 Kubernetes 监控方案之一。本文旨在帮助大家快速地搭建一个 Prometheus 和 Grafana 监控系统,以便更好地监控 Kubernetes 集群中的各种指标。

Prometheus 简介

Prometheus 是一个开源的监控系统,旨在收集系统和服务的指标数据,并提供基于这些数据的查询、警报和可视化功能。

Prometheus 的主要特点包括:

  • 多维数据模型
  • 灵活的查询语言
  • 不依赖分布式存储,单个服务器节点可以处理数百万个指标
  • 支持简单的水平扩展
  • 通过 pull 模型采集时间序列数据
  • 支持通过 HTTP API 实时查询数据

Grafana 简介

Grafana 是一个流行的开源监控和可视化平台,可用于显示 Prometheus 数据。

Grafana 的主要特点包括:

  • 支持多种数据源
  • 灵活的查询语言
  • 多种可视化图表类型
  • 丰富的面板功能
  • 支持多租户
  • 支持报警功能

Prometheus 和 Grafana 的工作流程

Prometheus 和 Grafana 的工作流程如下图所示:

  1. Prometheus 通过 Target 配置文件或 Kubernetes Service Discovery 服务发现规则,定期抓取目标服务的指标数据。
  2. Prometheus 存储和处理采集到的指标数据,并通过查询语言提供实时查询和聚合功能。
  3. Grafana 通过 Prometheus 数据源,从 Prometheus 中查询指标数据。
  4. 根据查询结果,Grafana 生成各种图表和面板,并提供可视化的操作界面。

Prometheus 和 Grafana 的搭建

1. 下载 Prometheus 和 Grafana

首先需要下载 Prometheus 和 Grafana。

Prometheus 的下载地址:https://prometheus.io/download/

Grafana 的下载地址:https://grafana.com/grafana/download

本文使用的是 Prometheus v2.29.2 和 Grafana v8.1.5。

2. 启动 Prometheus

下载 Prometheus 后,解压缩到任意目录,进入该目录,运行以下命令启动 Prometheus:

其中 prometheus.yml 是 Prometheus 的配置文件,可以根据实际情况修改。

启动后,在浏览器中访问 http://localhost:9090,即可看到 Prometheus 的 Web 界面。

3. 启动 Grafana

下载 Grafana 后,解压缩到任意目录,进入该目录,运行以下命令启动 Grafana:

启动后,在浏览器中访问 http://localhost:3000,即可看到 Grafana 的登录界面。

初始用户名和密码均为 admin。

4. 配置 Grafana 数据源

在登录 Grafana 后,需要先配置数据源,才能显示 Prometheus 中的指标数据。

具体步骤如下:

  1. 点击左侧菜单栏的 Configuration,选择 Data Sources。
  2. 点击 Add data source,选择类型为 Prometheus。
  3. 在 URL 栏输入 http://localhost:9090。
  4. 点击 Save & Test 按钮,测试连接是否成功。

5. 导入示例面板

Prometheus 自带了一些示例指标数据,可以用来测试和演示。我们先导入一个官方示例面板:node-exporter Full。

具体步骤如下:

  1. 进入 https://grafana.com/grafana/dashboards/1860,下载 node-exporter-full.json 文件。
  2. 在 Grafana 中点击左侧菜单栏的 +-> Import,选择导入方式为 Upload JSON File,上传下载好的 node-exporter-full.json 文件。
  3. 点击 Load 按钮,等待导入完成。
  4. 导入成功后,即可在 Grafana 中看到该示例面板,包括各种指标数据的图表和表格。

Prometheus 和 Grafana 的高级用法

PromQL 查询语言

Prometheus 提供了强大的查询语言 PromQL,支持多种操作符和函数,可用于聚合、计算和过滤指标数据。

以下是一些常用的 PromQL 查询示例:

  • 查询节点 CPU 使用率:
  • 查询 Pod 的 CPU 使用率:
  • 查询 Pod 的内存使用率:

Grafana 面板

Grafana 提供了强大的面板功能,可用于可视化指标数据,并提供各种组件和样式。以下是一些常用的 Grafana 面板示例:

  • 折线图:

  • 圆形图:

  • 柱状图:

总结

本文介绍了 Prometheus 和 Grafana 的搭建和基本用法,以及一些高级用法和示例。希望对大家了解和使用 Kubernetes 监控有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6480394648841e9894fb6e3f

纠错
反馈