一、Grafana 是什么

Grafana 是一款开源的 数据可视化与分析平台,常与 Prometheus、InfluxDB、Elasticsearch 等数据源结合,用于实时监控、业务分析与数据告警。

一句话概括:

Grafana = 数据可视化 + 仪表盘管理 + 智能告警中心。

Grafana 是 DevOps、SRE、数据分析、运维可视化的核心工具之一。


二、核心特性

特性 描述
多数据源支持 兼容 Prometheus、Elasticsearch、MySQL、PostgreSQL、Loki 等
实时数据可视化 动态刷新图表、实时展示
丰富的图表组件 折线图、饼图、仪表盘、热力图、地理图
权限与组织管理 支持多租户、空间隔离
告警与通知 内置规则与外部通知系统(Slack、Email、Webhook)
插件与扩展 丰富的社区插件支持
API 与自动化 支持 REST API 调用与 JSON 导出导入

三、安装与启动

1. Linux 安装

sudo apt-get install -y adduser libfontconfig1 wget https://dl.grafana.com/oss/release/grafana-11.1.0.linux-amd64.tar.gz tar -zxvf grafana-11.1.0.linux-amd64.tar.gz cd grafana-11.1.0 ./bin/grafana-server web &

2. 访问

打开浏览器访问:


http://localhost:3000

默认账号密码:


admin / admin

首次登录会要求修改密码。


四、连接数据源

Grafana 支持多种数据源,包括:

数据源 用途
Prometheus 监控指标与告警
Elasticsearch 日志搜索与可视化
InfluxDB 时间序列数据库
MySQL / PostgreSQL 业务数据库
Loki 日志系统
Graphite 历史性能监控
连接 Prometheus

在 Grafana 左侧菜单 → Connections → Data sources → 选择 Prometheus → 填入:


http://localhost:9090

点击 “Save & Test”,若成功会显示 “Data source is working”。


五、创建第一个仪表盘

1. 新建 Dashboard

左侧菜单 → Dashboards → New → New Dashboard

点击 “Add a new panel” → 在 “Query” 区域输入 PromQL 语句:


rate(http_requests_total[1m])

右侧自动生成图表,点击 “Apply” 保存。

2. 修改图表类型

支持的类型包括:

  • Line(折线图)

  • Bar(柱状图)

  • Stat(数值)

  • Gauge(仪表盘)

  • Table(表格)

  • Pie(饼图)

  • Heatmap(热力图)


六、使用 PromQL 数据

示例:


sum(rate(node_cpu_seconds_total{mode!="idle"}[5m])) by (instance)

该语句表示每台机器过去 5 分钟的 CPU 使用率。

图表上可实时刷新数据,支持设定时间范围(1m、1h、24h 等)。


七、仪表盘参数化

通过 Variables 功能实现动态切换监控对象。

1. 创建变量

Dashboard → Settings → Variables → Add variable

示例:


Name: instance Type: Query Data source: Prometheus Query: label_values(node_cpu_seconds_total, instance)

在图表查询中使用:


sum(rate(node_cpu_seconds_total{instance=~"$instance"}[5m]))

可在页面下拉选择不同服务器。


八、可视化高级配置

单位与格式

可在 “Field → Standard options” 中设置单位:

  • bytes → 转换为 MB、GB;

  • duration → 秒、分钟;

  • percent → 百分比;

  • currency → 金额格式。

颜色与阈值

设置 “Thresholds”:


0 → 绿色 0.7 → 黄色 0.9 → 红色

用于直观显示指标健康状态。


九、告警配置

Grafana 的告警系统可在 Dashboard 内直接配置规则。

创建告警规则
  1. 打开某图表;

  2. 点击 “Alert → Create alert rule”;

  3. 设置条件:

    
      

    WHEN avg() OF query(A, 5m, now) IS ABOVE 0.8

  4. 添加通知渠道(Email / Slack / Webhook);

  5. 点击 “Save”。

告警管理界面

左侧菜单 → Alerting → Alert rules
可集中查看所有规则与触发状态。


十、通知渠道配置

Email 告警

在配置文件 grafana.ini 中修改:


[smtp] enabled = true host = smtp.example.com:587 user = admin@example.com password = yourpassword from_address = grafana@example.com from_name = Grafana Alerts

重启服务后启用邮件发送。

Slack 告警

在 Slack 中创建 Webhook:


https://hooks.slack.com/services/XXXX/XXXX/XXXX

Grafana 配置:


Alerting → Contact points → New contact point → Slack


十一、仪表盘导入与导出

导入模板

Dashboard → Import → 输入 ID 或上传 JSON 文件。

常用模板 ID 示例:

模板名称 ID
Node Exporter Full 1860
Prometheus 2.0 Overview 3662
Docker & Container Overview 395
PostgreSQL Metrics 9628
导出 JSON

点击右上角齿轮 → “JSON Model” → “Export”。

参考案例:www.qmlik.cn


十二、与 Loki 日志系统集成

Grafana 可直接查看日志与指标。

Loki 数据源配置

URL: http://localhost:3100

示例查询:


{app="nginx"} |= "error"

支持通过 “Log Panel” 展示实时日志流,与指标图表联动。


十三、与 Tempo(分布式追踪)集成

Tempo 可展示请求的分布式调用链。

示例:


Data source: Tempo Trace ID: 自动获取或手动输入

Grafana 可关联 Metrics + Logs + Traces,形成 全栈可观测性体系


十四、用户与权限管理

Grafana 支持多租户、多用户权限控制。

用户管理命令

创建用户:


grafana-cli admin create-user --name="dev" --role=Viewer --password="123456" --email="dev@company.com"

角色类型:

角色 权限
Viewer 仅查看仪表盘
Editor 编辑图表
Admin 管理数据源与用户

十五、使用 API 自动化管理

Grafana 提供 REST API,支持自动化导入 Dashboard 或配置。

示例:导入 Dashboard

curl -X POST http://localhost:3000/api/dashboards/db \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -d @dashboard.json

导出数据源配置

curl -H "Authorization: Bearer YOUR_API_TOKEN" http://localhost:3000/api/datasources


十六、组织与空间(Organization & Folder)

  • Organization:用于企业多团队隔离;

  • Folder:用于分类仪表盘。

示例层级:


Company ├── DevOps │ ├── System Monitor │ ├── CI/CD Pipeline ├── Business │ ├── Sales Overview │ ├── Customer Metrics


十七、Grafana + Prometheus 联动

典型查询语句:


avg(rate(http_requests_total[1m])) by (method)

可生成 HTTP 请求速率趋势图。

结合告警规则,可自动发送异常通知至 Slack / 邮件。


十八、Grafana 性能优化

  1. 限制查询时间范围(如最近 6 小时);

  2. 缓存常用查询

  3. 减少刷新频率(默认 30s)

  4. 使用轻量数据源(Prometheus / Loki)

  5. 启用 gzip 压缩

  6. 数据库迁移至 PostgreSQL 以支持持久存储


十九、企业级部署架构


+-----------------------------+ | Grafana (Web UI) | |-----------------------------| | Prometheus | Loki | Tempo | |-----------------------------| | Exporters | Agents | +-----------------------------+

Grafana 统一管理可观测性数据,实现:

  • 监控指标(Metrics)

  • 系统日志(Logs)

  • 链路追踪(Traces)


二十、企业实战应用场景

场景 实践方式
服务器监控中心 Node Exporter + Prometheus + Grafana
Kubernetes 集群观测 kube-state-metrics + cAdvisor
Web 服务健康监控 HTTP 延迟、错误率图表
数据库性能分析 PostgreSQL Exporter + 自定义查询
日志告警系统 Loki + Slack 通知
业务指标看板 接入 MySQL / Elasticsearch 实现运营数据分析
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐