Grafana 中文教程

1. 项目概述

Grafana 是一个开源的可视化监控平台,专为查询、分析和可视化时间序列数据而设计。它支持多种数据源,提供丰富的仪表盘和可视化选项,是监控系统中不可或缺的组件。

主要功能

  • 丰富的可视化选项:图表、表格、热力图、仪表盘等
  • 支持多种数据源:Prometheus、InfluxDB、Elasticsearch、Graphite等
  • 强大的查询编辑器:支持各种数据源的查询语言
  • 灵活的仪表盘:可定制的布局、变量、注释
  • 告警功能:基于仪表盘的告警规则
  • 权限管理:细粒度的访问控制
  • 插件系统:支持扩展功能
  • 导出和分享:可导出仪表盘为JSON或图片

技术栈特点

  • 前端:React、TypeScript
  • 后端:Go语言
  • 数据库:SQLite、MySQL、PostgreSQL
  • 插件系统:支持多种类型的插件

适用环境

  • 监控系统可视化
  • 业务指标分析
  • 日志数据可视化
  • 应用性能监控
  • DevOps 仪表盘

2. 安装与配置

2.1 二进制安装

  1. Grafana 官网 下载对应平台的二进制文件
  2. 解压文件
  3. 运行 Grafana
# 下载最新版本
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.5.2.linux-amd64.tar.gz

# 解压
tar -zxvf grafana-enterprise-9.5.2.linux-amd64.tar.gz
cd grafana-*

# 运行 Grafana
./bin/grafana-server

2.2 Docker 安装

docker run -d \n  --name grafana \n  -p 3000:3000 \n  grafana/grafana-enterprise

2.3 Kubernetes 安装

使用 Helm 安装:

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm install grafana grafana/grafana

2.4 基本配置

Grafana 的主要配置文件是 grafana.ini,位于安装目录的 conf 文件夹中。

# grafana.ini 主要配置
[server]
http_port = 3000

database]
type = sqlite3

[security]
admin_user = admin
admin_password = admin

[paths]
data = data
logs = logs
plugins = plugins
provisioning = provisioning

3. 基本使用

3.1 启动 Grafana

# 使用默认配置启动
./bin/grafana-server

# 使用自定义配置启动
./bin/grafana-server --config=custom.ini

3.2 访问 Web UI

Grafana 启动后,可以通过 http://localhost:3000 访问 Web UI。默认用户名和密码都是 admin

3.3 添加数据源

  1. 登录 Grafana Web UI
  2. 点击左侧菜单的 "配置" -> "数据源"
  3. 点击 "添加数据源"
  4. 选择数据源类型(如 Prometheus)
  5. 配置数据源连接信息
  6. 点击 "保存并测试"

3.4 创建仪表盘

  1. 点击左侧菜单的 "+" -> "创建仪表盘"
  2. 点击 "添加新面板"
  3. 选择数据源
  4. 使用查询编辑器编写查询
  5. 配置可视化选项
  6. 点击 "应用"
  7. 点击 "保存"

3.5 导入仪表盘

Grafana 支持导入社区共享的仪表盘:

  1. 点击左侧菜单的 "+" -> "导入"
  2. 输入仪表盘 ID 或上传 JSON 文件
  3. 选择数据源
  4. 点击 "导入"

4. 高级特性

4.1 变量

仪表盘变量允许创建动态仪表盘:

  1. 点击仪表盘顶部的 "设置" 图标
  2. 点击 "变量"
  3. 点击 "添加变量"
  4. 配置变量属性
  5. 点击 "保存"

4.2 告警

Grafana 支持基于仪表盘的告警:

  1. 编辑面板
  2. 点击 "告警" 标签
  3. 点击 "创建告警规则"
  4. 配置告警条件
  5. 配置通知渠道
  6. 点击 "应用"

4.3 注释

注释允许在仪表盘中添加事件标记:

  1. 点击仪表盘顶部的 "注释" 图标
  2. 点击 "添加注释"
  3. 输入注释文本和时间范围
  4. 点击 "保存"

4.4 插件

Grafana 支持多种类型的插件:

  • 数据源插件:添加新的数据源支持
  • 面板插件:添加新的可视化类型
  • 应用插件:完整的应用功能

安装插件:

# 使用 grafana-cli 安装插件
grafana-cli plugins install grafana-clock-panel

# 或者通过 Web UI 安装
# 点击左侧菜单的 "配置" -> "插件" -> "浏览"

5. 最佳实践

5.1 仪表盘设计

  • 保持仪表盘简洁明了,避免过多面板
  • 使用一致的命名和分组
  • 合理使用变量,提高仪表盘的可重用性
  • 为关键指标设置阈值和告警
  • 使用适当的可视化类型:
    • 时间序列数据:折线图
    • 分类数据:条形图
    • 分布数据:热力图
    • 状态数据:仪表盘

5.2 数据源管理

  • 为不同环境使用不同的数据源实例
  • 使用变量切换不同的数据源
  • 配置数据源的缓存和超时设置
  • 监控数据源的健康状态

5.3 告警管理

  • 合理设置告警阈值,避免告警风暴
  • 使用不同级别的告警(info、warning、critical)
  • 配置合适的告警通知渠道
  • 定期审查和优化告警规则

5.4 性能优化

  • 合理设置数据查询的时间范围
  • 使用适当的聚合函数减少数据点
  • 避免在单个面板中使用过多的查询
  • 配置适当的仪表盘自动刷新间隔
  • 考虑使用 Grafana Mimir 进行长期数据存储

6. 实际应用场景

6.1 监控服务器资源

使用 Prometheus 作为数据源,创建服务器资源监控仪表盘:

主要面板:

  • CPU 使用率
  • 内存使用率
  • 磁盘使用率
  • 网络流量
  • 系统负载

查询示例:

# CPU 使用率
100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

# 内存使用率
(node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100

# 磁盘使用率
(node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_free_bytes{mountpoint="/"}) / node_filesystem_size_bytes * 100

6.2 监控 Kubernetes 集群

使用 Prometheus 和 kube-state-metrics 作为数据源,创建 Kubernetes 集群监控仪表盘:

主要面板:

  • 集群节点状态
  • Pod 状态和资源使用
  • 集群资源请求和限制
  • 存储使用情况
  • 网络流量

推荐仪表盘:

  • Kubernetes 集群监控 (ID: 15755)
  • Kubernetes 节点监控 (ID: 15756)

6.3 监控应用性能

使用 Prometheus 和应用暴露的指标,创建应用性能监控仪表盘:

主要面板:

  • 请求率和错误率
  • 平均响应时间
  • 95th/99th 百分位响应时间
  • 并发请求数
  • 应用资源使用

查询示例:

# 请求率
rate(http_requests_total[5m])

# 错误率
rate(http_requests_total{status=~"5.."}[5m]) / rate(http_requests_total[5m])

# 平均响应时间
sum(rate(http_request_duration_seconds_sum[5m])) by (service) / sum(rate(http_request_duration_seconds_count[5m])) by (service)

6.4 业务指标分析

使用 InfluxDB 或 PostgreSQL 作为数据源,创建业务指标分析仪表盘:

主要面板:

  • 日活跃用户
  • 转化率
  • 收入趋势
  • 用户留存率
  • 产品使用情况

可视化建议:

  • 使用折线图展示趋势
  • 使用条形图展示对比
  • 使用表格展示详细数据
  • 使用热力图展示分布

7. 总结

Grafana 是一个功能强大、灵活可扩展的可视化平台,它不仅是监控系统的重要组成部分,也是业务分析的有力工具。通过本文的介绍,您应该已经了解了 Grafana 的核心概念、安装配置、基本使用和高级特性。

关键优势

  • 支持多种数据源,适配各种监控场景
  • 丰富的可视化选项,满足不同的展示需求
  • 灵活的仪表盘配置,支持动态和交互式体验
  • 强大的告警功能,及时发现问题
  • 活跃的社区,丰富的插件和共享仪表盘

应用场景

  • 基础设施监控
  • 应用性能监控
  • 业务指标分析
  • DevOps 仪表盘
  • 日志数据可视化

Grafana 与 Prometheus 等监控工具结合使用,可以构建完整的监控和可视化解决方案,帮助您更好地理解系统状态,及时发现和解决问题。

« 上一篇 Prometheus 中文教程 下一篇 » Loki 中文教程