首页>软件资讯>常见问题

常见问题

grafana模板

发布时间:2026-01-21 10:47:18人气:66


一、什么是 Grafana 模板?

一个 Grafana 模板(或仪表板模板)是一个 JSON 文件,它定义了:


数据源: 指定要连接的数据源类型(如 Prometheus, MySQL, InfluxDB 等)。


面板: 包含各种图表(曲线图、柱状图、仪表盘、表格、热图等)。


查询: 每个面板背后从数据源获取数据的查询语句(如 PromQL, SQL)。


变量: 仪表板顶部的下拉筛选器,用于动态改变面板的查询内容(如选择不同的主机、服务、环境)。


布局与样式: 面板的位置、大小、颜色、坐标轴、图例等所有可视化设置。


二、如何获取和使用模板?

1. 主要来源

Grafana 官方仪表板仓库: Grafana Dashboards


这是最大的模板库,拥有成千上万个社区贡献的模板。


每个模板都有唯一的 ID(如 1860 对应 Node Exporter Full)。


你可以按数据源(Prometheus, MySQL)、技术栈(Kubernetes, JVM)或厂商(AWS, Azure)筛选。


项目官方文档: 许多开源监控组件(如 node_exporter, cAdvisor, MySQL)的官方文档会推荐或提供对应的 Grafana 仪表板。


GitHub: 搜索 grafana dashboard json 或特定技术栈加上 grafana 关键词。


2. 使用步骤(以官方仓库为例)

方法一:通过 ID 在线导入(最简单)


在 Grafana 左侧菜单栏,点击 Dashboards -> Import。


在 Import via grafana.com 输入框中,粘贴你找到的模板 ID(例如 1860),然后点击 Load。


为仪表板命名,并最关键的一步:为模板中定义的数据源选择你实际环境中的对应数据源。


点击 Import,一个完整的监控仪表板就创建好了。


方法二:上传 JSON 文件


在 GitHub 或文档中找到并下载 .json 文件。


在 Import 页面,点击 Upload JSON file,选择文件并上传。


后续步骤同上。


三、模板核心组件解析(以 Prometheus + Node Exporter 为例)

理解模板结构有助于你自定义。


json

{

  // 1. 基础信息

  "title": "Node Exporter Full",

  "uid": "d2babb4a-16d5-4b3b-8b6d-7c7b6c7b6c7b",

  // 2. 变量定义 - 实现动态筛选

  "templating": {

    "list": [

      {

        "name": "job", // 变量名,在查询中用 `$job` 引用

        "label": "Job",

        "query": "label_values(node_uname_info, job)", // PromQL查询,获取所有job标签值

        "type": "query"

      },

      {

        "name": "instance",

        "label": "Instance",

        "query": "label_values(node_cpu_seconds_total{job=\"$job\"}, instance)",

        "type": "query",

        "refresh": 2 // 变量联动:当job改变时,刷新instance列表

      }

    ]

  },

  // 3. 面板列表 - 每个面板一个对象

  "panels": [

    {

      "title": "CPU Usage",

      "type": "timeseries", // 面板类型:时间序列图

      "gridPos": {"h": 8, "w": 12, "x": 0, "y": 0}, // 位置和大小

      "targets": [ // 数据查询目标

        {

          "expr": "100 - (avg by(instance) (rate(node_cpu_seconds_total{mode=\"idle\", job=\"$job\", instance=\"$instance\"}[5m])) * 100)", // PromQL查询

          "legendFormat": "{{instance}} CPU Usage" // 图例格式

        }

      ],

      "fieldConfig": { // 字段/样式配置

        "defaults": {

          "unit": "percent", // 单位:百分比

          "color": {"mode": "palette-classic"}

        }

      }

    },

    {

      "title": "Memory Usage",

      "type": "gauge", // 面板类型:仪表盘

      "gridPos": {"h": 8, "w": 12, "x": 12, "y": 0},

      "targets": [

        {

          "expr": "(node_memory_MemTotal_bytes{job=\"$job\", instance=\"$instance\"} - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes) / node_memory_MemTotal_bytes * 100"

        }

      ],

      "fieldConfig": {

        "defaults": {

          "unit": "percent",

          "thresholds": { // 阈值:绿色(<80),黄色(80-90),红色(>90)

            "steps": [

              {"color": "green", "value": null},

              {"color": "yellow", "value": 80},

              {"color": "red", "value": 90}

            ]

          }

        }

      }

    }

  ],

  // 4. 时间范围与刷新设置

  "time": {"from": "now-1h", "to": "now"},

  "refresh": "30s"

}

四、创建/自定义模板的最佳实践

从社区模板开始: 不要从零开始。找一个接近你需求的模板导入,然后修改。


合理使用变量:


使用变量避免为每个服务器创建独立仪表板。


善用 $__interval、$timeFilter 等 Grafana 内置变量,让查询更高效。


优化查询:


对于 Prometheus,确保查询高效,避免全量数据扫描。


使用 rate()、increase() 等函数时,区间选择要合理。


统一风格:


统一颜色、单位(如网络用 bits/s,磁盘用 bytes)、小数位数。


为关键指标(如错误率、延迟)设置阈值,并用颜色高亮。


组织布局:


将相关指标放在一起(如所有 CPU 相关、所有网络相关)。


最重要的指标放在顶部,用大一些的面板展示。


使用 Row(行) 对面板进行分组和折叠,使仪表板更清晰。


添加说明:


使用 Text(文本) 面板为仪表板或某个部分添加说明文字。


在面板描述中解释指标含义和计算公式。


五、推荐的热门模板(ID)

基础设施监控:


1860: Node Exporter Full - 最全面的 Linux 主机监控。


315: Docker & System Monitoring - 容器和主机监控。


7371: Kubernetes / Nodes (Prometheus) - K8s 节点监控。


应用与中间件监控:


11323: MySQL Overview - MySQL 数据库监控。


2583: Redis Dashboard for Prometheus Redis Exporter - Redis 监控。


687: Spring Boot Statistics - Spring Boot 应用监控。


总结

Grafana 模板极大地提升了监控仪表板的构建效率。核心工作流是:寻找 -> 导入 -> 适配数据源 -> 自定义。通过理解其 JSON 结构和核心概念(变量、查询、面板配置),你就能将任何优秀的社区模板转化为适合自己环境的强大监控视图。先从导入一个模板开始动手实践吧!



上一条:grafana配置

下一条:grafana 告警