Grafana 使用入门

Grafana 使用入门

在现代IT架构中,系统、应用和基础设施会产生海量的时序数据(Time-Series Data)。如何将这些冰冷的数据转化为直观、 actionable 的洞察,是运维、开发和分析师面临的核心挑战。Grafana 正是在这个背景下应运而生的开源王者,它成为了可视化和监控领域的事实标准

本文将深入浅出地介绍 Grafana 的核心功能、安装方法、基本用法,并通过一个完整的实战示例带你快速上手。

一、Grafana 是什么?为什么选择它?

Grafana 是一个开源的、功能强大的指标分析和可视化平台。它最擅长将来自不同数据源(如 Prometheus, MySQL, Elasticsearch 等)的时序数据,转换为漂亮的图表、仪表盘和告警信息。

核心价值与特点:

  1. 多数据源支持:这是 Grafana 的王牌功能。它可以无缝连接数十种流行的数据库、监控工具和云服务,让你在一个平台上统一查看所有数据,打破数据孤岛。
  2. 强大的可视化能力:提供丰富多样的图表类型,从基础的折线图、柱状图到热力图、状态地图(Geomap)、日志面板等,几乎可以满足任何可视化需求。
  3. 灵活的仪表盘:通过简单的拖放操作,即可创建布局精美、信息丰富的交互式仪表盘。支持变量(Variables)实现动态仪表盘,一次创建,多处过滤查看。
  4. 告警与通知:可以基于仪表盘中的数据设置告警规则,当指标异常时,通过邮件、Slack、PagerDuty、Webhook 等多种方式及时通知相关人员。
  5. 开源与活跃社区:拥有庞大而活跃的社区,提供海量由用户共享的仪表盘模板,可以快速导入使用,极大节省了搭建成本。
  6. 插件化架构:高度可扩展,可以通过插件支持新的数据源、图表类型和应用程序功能。

典型应用场景:

  • IT 运维监控:监控服务器 CPU、内存、磁盘、网络状态。
  • 应用性能监控 (APM):追踪应用 QPS、响应延迟、错误率。
  • 业务数据监控:可视化网站访问量、用户活跃度、订单成交额等业务指标。
  • 物联网 (IoT):展示传感器上传的温度、湿度、设备状态等数据。
  • 日志分析与可视化:与 Loki 等日志系统结合,分析日志趋势。

二、安装与部署

Grafana 的安装非常简单,支持多种方式。以下以最常见的 Linux 系统为例。

方法一:使用 APT 仓库安装 (Ubuntu/Debian)
bash 复制代码
# 1. 安装依赖
sudo apt-get install -y software-properties-common wget

# 2. 添加Grafana的APT仓库
sudo wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

# 3. 更新软件包列表并安装
sudo apt-get update
sudo apt-get install grafana

# 4. 启动Grafana服务并设置开机自启
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
方法二:使用 Docker 安装 (最快捷)

如果你熟悉 Docker,这是最快的方式。

bash 复制代码
docker run -d -p 3000:3000 --name=grafana grafana/grafana-enterprise

访问 http://<你的服务器IP>:3000 即可。

方法三:直接下载二进制文件

适用于 macOS 和 Windows,可以从 Grafana 官网下载页面 获取安装包。

安装后访问

默认地址是 http://<你的服务器IP>:3000

默认用户名和密码都是 admin。首次登录后会要求修改密码。

三、核心概念与基本用法

1. 数据源 (Data Sources)

在创建图表之前,必须先配置数据源。这是 Grafana 连接外部数据库的地方。

  • 路径:左侧导航栏 -> 齿轮图标 (Configuration) -> Data sources -> Add data source。
  • 常见数据源:Prometheus, Loki (for logs), Tempo (for traces), InfluxDB, Elasticsearch, MySQL, PostgreSQL, AWS CloudWatch, Google Cloud Monitoring 等。
2. 仪表盘 (Dashboards)

仪表盘是图表的容器,是你工作的最终成果。一个仪表盘由多个面板(Panels) 组成。

3. 面板 (Panels)

面板是仪表盘的基本构建块,每个面板代表一个可视化图表。创建面板时,你需要:

  • 选择可视化类型(Visualization):如 Time series, Stat, Gauge, Bar chart 等。
  • 编写查询(Query):使用对应数据源的查询语言(如 PromQL for Prometheus, SQL for MySQL)来获取数据。
  • 配置属性:设置标题、单位、颜色、阈值、坐标轴等。
4. 变量 (Variables)

变量是 Grafana 的灵魂功能之一。它允许你创建下拉菜单,动态地改变面板中查询的内容。

  • 例如 :创建一个 host 变量,包含所有主机名。在查询中引用 $host,就可以通过下拉菜单选择不同的主机,所有图表会自动刷新显示该主机的数据。

四、实战示例:监控 Linux 主机

让我们通过一个完整的例子,使用 Prometheus 监控一台 Linux 主机,并用 Grafana 进行可视化。

第 1 步:部署监控组件
  1. 安装并运行 Prometheus

    • 下载 Prometheus,修改 prometheus.yml 配置文件,抓取 Node Exporter 的指标。
    • 启动 Prometheus。
  2. 在被监控主机上安装并运行 Node Exporter

    • Node Exporter 是一个用于暴露硬件和操作系统指标的工具。
    • 下载后直接运行 ./node_exporter,它默认在 http://<主机IP>:9100/metrics 提供指标。
第 2 步:在 Grafana 中添加数据源
  1. 登录 Grafana。
  2. 进入 Configuration -> Data Sources -> Add data source
  3. 选择 Prometheus
  4. 在 URL 栏中填写你的 Prometheus 服务器地址(例如:http://localhost:9090)。
  5. 点击 Save & Test,如果出现 "Data source is working" 则表示成功。
第 3 步:创建主机监控仪表盘(两种方法)

方法 A:导入社区模板(最快)

  1. 访问 Grafana Labs 官方仪表盘库
  2. 搜索 "Node Exporter Full",这是一个非常全面的主机监控模板,ID 为 1860
  3. 在 Grafana 中,点击 Create -> Import
  4. 输入 ID 1860,点击 Load。
  5. 选择 Prometheus 数据源,点击 Import

瞬间,一个功能齐全、美观的主机监控仪表盘就创建完成了!

方法 B:手动创建面板(用于学习)

我们手动创建一个显示 CPU 使用率的图表。

  1. 创建新仪表盘 :点击 Create -> Dashboard
  2. 添加新面板 :点击 Add new panel
  3. 编写查询
    • 在 Query 编辑器中,选择你的 Prometheus 数据源。

    • 输入 PromQL 查询语句:

      promql 复制代码
      100 - (avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100

      这个查询用于计算平均 CPU 使用率百分比。

  4. 配置图表
    • Panel title:改为 "CPU Usage"。
    • Standard options 里,将 Unit 设置为 Percent (0-100)
    • 可以调整颜色、图例等。
  5. 应用面板 :点击右上角的 Apply 保存面板到仪表盘。
  6. 重复步骤 2-5 ,添加内存、磁盘 IO、网络流量等面板。
    • 内存使用率查询示例

      promql 复制代码
      (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100
    • 磁盘使用率查询示例 (需要先确认你的挂载点):

      promql 复制代码
      node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"} * 100

最终,你将得到一个类似下图的自定义监控仪表盘:
(此处通常应有一张Grafana仪表盘的截图)

五、高级功能:设置告警

当 CPU 使用率持续过高时,我们希望收到通知。

  1. 在你的 CPU 面板上,点击标题,选择 Edit
  2. 切换到 Alert 标签页。
  3. 点击 Create alert rule from this panel
  4. 配置告警规则
    • Rule name : High CPU Usage
    • Evaluate every : 5m (每5分钟检查一次)
    • Conditions :
      • WHEN max() OF query(A, 5m, now) IS ABOVE 90
        (意思是:当最近5分钟内,查询A的最大值超过90%)
  5. 配置通知渠道
    • 首先需要在 Alerting -> Notification channels 中配置一个渠道,比如 Slack 或 Email。
    • 在告警规则中,选择添加好的通知渠道。
  6. 保存告警规则。

现在,当你的 CPU 使用率超过 90% 并持续5分钟,Grafana 就会自动发送告警通知。

总结

Grafana 不仅仅是一个绘图工具,它是一个完整的可观测性平台的核心。通过将多种数据源整合到统一的、交互式的可视化界面中,它极大地提升了我们理解系统状态、定位问题、分析趋势的效率。

从简单的折线图到复杂的业务 KPI 看板,从基础设施监控到实时业务分析,Grafana 都能胜任。现在就开始你的 Grafana 之旅,将这些沉睡的数据转化为宝贵的洞察力吧!

官方资源