【Linux】Prometheus + Grafana的使用

👨‍🎓博主简介

🏅CSDN博客专家

🏅云计算领域优质创作者

🏅华为云开发者社区专家博主

🏅阿里云开发者社区专家博主

💊交流社区: 运维交流社区 欢迎大家的加入!

🐋 希望大家多多支持,我们一起进步!😄

🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


文章目录

  • [一、 配置 Prometheus 数据源](#一、 配置 Prometheus 数据源)
  • 二、导入grafana监控面板
  • 三、设置仪表板
  • [四、新建仪表板 / 添加仪表板](#四、新建仪表板 / 添加仪表板)
  • 五、面板的操作
    • [5.1 查看](#5.1 查看)
    • [5.2 编辑](#5.2 编辑)
    • [5.3 分享](#5.3 分享)
      • [5.3.1 共享连接](#5.3.1 共享连接)
      • [5.3.2 共享嵌入](#5.3.2 共享嵌入)
      • [5.3.3 共享快照](#5.3.3 共享快照)
    • [5.4 探索](#5.4 探索)
    • [5.5 检查](#5.5 检查)
      • [5.5.1 数据](#5.5.1 数据)
      • [5.5.2 查询](#5.5.2 查询)
      • [5.5.3 面板JSON](#5.5.3 面板JSON)
    • [5.6 指标深入分析](#5.6 指标深入分析)
    • [5.7 更多](#5.7 更多)
      • [5.7.1 复制](#5.7.1 复制)
      • [5.7.2 新建警报规则](#5.7.2 新建警报规则)
      • [5.7.3 隐藏图例](#5.7.3 隐藏图例)
      • [5.7.4 获得帮助](#5.7.4 获得帮助)

一、 配置 Prometheus 数据源

下面我们把 Prometheus 服务器收集的数据做为一个数据源添加到 grafana,让 grafana 可以得到 Prometheus 的数据。

选择Prometheus

这里改成部署prometheusip:9090

往下拉,吧http请求改为Get请求

然后保存并测试

二、导入grafana监控面板

这里我们使用现成的模板导入即可,GitHub上面很多人开发了dashboards模板,官方社区上也有很多开源的dashboards模板,我们只需要把模板的ID 或者 JSON文件导入到grafana中即可;

官方模板地址:https://grafana.com/grafana/dashboards/

进入官网,往下拉,可以看到有很多模板,这里比如我们可以找node_exporter,可以直接搜索,也可也再Collector Types中选择Node exporter ,然后根据自己的需求选择模板;

找到心仪的模板之后点进去,可以看到右边有Copy IDDownload JSON,自行选择就行;这里我选择复制id;

复制好id之后,打开在 Grafana 页面中,找到仪表板 --> 新建 --> 导入,选择自己导入的方式,输入 ID 号、网址或者上传 JSON 文件、输入JSON都可以,点击 加载;

选择刚刚创建的数据源,名称和文件夹也可以自行修改,再Import导入;

就可以看到Prometheus 的数据了;

  • 也可以根据主机名选择服务器,主机名可选择的是Prometheus的node_exporter
  • 也可以修改刷新时间,点击Refresh旁边的V ,选择自动刷新的时间;
  • 也可以自定义选择网卡信息,进行网卡流量监控;

三、设置仪表板

首先,打开仪表板,找到要添加的模板,点进去,右上角有个编辑,点击编辑,即可进入编辑模式,然后就可以看到设置按钮;


这里可以进行设置或修改模板
概括: 标题、描述、标签、文件夹、是否可编辑、时间、自动刷新的时间
注释:
变量:
链接:
版本:
权限:
JSON模型:


四、新建仪表板 / 添加仪表板

这里展示添加仪表板,新建也是以此类推,不过比添加仪表板少个步骤而已;

首先,打开仪表板,找到要添加的模板,点进去,右上角有个编辑,点击编辑,即可进入编辑模式;

点击添加,可添加可视化、从库导入、行、粘贴面板,以下是说明:

  1. 添加可视化(Add Panel)

    • 说明: 这是最常用的选项,用于在仪表板上添加一个新的可视化组件(即一个面板)。面板可以展示图表、表格、日志、仪表等,是仪表板展示数据的主要方式。你可以在面板中编写查询,选择数据源,设置图表类型,调整样式等。
    • 使用场景: 当你需要展示特定数据的图表或表格时,你可以添加一个新的面板,并在其中编写查询和设置可视化选项。
  2. 从库导入(Import)

    • 说明: Grafana 允许用户创建仪表板库,这些库可以包含一个或多个面板、变量、数据源等。通过"从库导入"功能,你可以将这些预定义的仪表板库导入到当前仪表板中。这对于快速创建仪表板或重用已有的仪表板设计非常有用。
    • 使用场景: 如果你有一个仪表板模板或想要重用其他用户的仪表板设计,你可以从库中导入这些设计,然后根据需要进行调整。
  3. 行(Add Row)

    • 说明: 在 Grafana 的仪表板中,你可以将面板组织成行。选择"行"选项会在仪表板中添加一个新的行容器。你可以将多个面板拖放到同一行中,以便它们在仪表板上水平排列。这有助于更好地组织和布局仪表板。
    • 使用场景: 当你的仪表板包含多个面板,并且你希望它们在视觉上更有条理时,你可以使用行来组织这些面板。
  4. 粘贴面板(Paste Panel)

    • 如果看到一个面板不错的话,想用这个面板再单独做一个数据展示,这时候就可以复制这个面板,然后到这里点击粘贴面板。

这里展示为:添加可视化

比如:我现在监控网卡每秒网络带宽使用;

可视化界面展示说明:

  • 进来先确定好需要做什么,查询什么内容
  • 然后,选择数据源
  • 选择指标,可以同时添加多个指标,这里我就选择做网卡每秒网络带宽使用,那就需要添加上行和下行流量,可以参考此文:【云原生】Prometheus之PromQL用法详解 来写PromQL,或者直接可视化选择要展示的内容;



  • 自定义图标下面展示的文字,再填写指标的这块选择:Options - Legend - Custom - 可以使用变量,变量使用{``{device}}这样使用;例如,吧下面的名称改为哪个网卡的每秒下载流量;
  • 给此表起个名字,也就是标题,这里的标题也是可以用变量的,变量写法为:$device,代表网卡名称;
  • 右侧也有很多选项,比如,默认的查询结果为字节,我们可以修改单位为:kb/s,可以再右侧拉到下面找到单位,这里提供了很多类型的单位,可以自己选择,也可以自定义;
  • 达到自己想要的效果之后就可以点击右上角的保存仪表板了,直接保存,再返回数据面板就可以看到自己创建的了;也可以根据主机名、网卡名称进行自动变化;
  • 这里看到之后还需要点击右上角保存仪表板,这时候就可以安心的退出到主页面了;

五、面板的操作

5.1 查看

用于放大查看当前面板的信息;

5.2 编辑

进入编辑模式,用于增加、修改、删除当前面板信息;

5.3 分享

5.3.1 共享连接

通过链接别人可以看到当前面板;

5.3.2 共享嵌入

可以通过生成的iframe嵌入到html中;

5.3.3 共享快照

为了防止修改、更新错误,再更新之前可以添加快照,方便回滚

5.4 探索

查看当前面板的promql语法,并可以在这里进行测试而不影响面板本身;

5.5 检查

5.5.1 数据

以表视图形式查看监控的数据值

5.5.2 查询

点击刷新,会根据当前选中的面板中配置的PromQL语句及主机的信息自动查询,展示为JSON结果;

5.5.3 面板JSON

当前面板的JSON数据,包含所有配置的内容;

json 复制代码
{
  "id": 186,
  "type": "timeseries",
  "title": "$device 网卡每秒网络带宽使用",
  "gridPos": {
    "x": 0,
    "y": 8,
    "h": 8,
    "w": 12
  },
  "fieldConfig": {
    "defaults": {
      "custom": {
        "drawStyle": "line",
        "lineInterpolation": "linear",
        "barAlignment": 0,
        "barWidthFactor": 0.6,
        "lineWidth": 1,
        "fillOpacity": 0,
        "gradientMode": "none",
        "spanNulls": false,
        "insertNulls": false,
        "showPoints": "auto",
        "showValues": false,
        "pointSize": 5,
        "stacking": {
          "mode": "none",
          "group": "A"
        },
        "axisPlacement": "auto",
        "axisLabel": "",
        "axisColorMode": "text",
        "axisBorderShow": false,
        "scaleDistribution": {
          "type": "linear"
        },
        "axisCenteredZero": false,
        "hideFrom": {
          "tooltip": false,
          "viz": false,
          "legend": false
        },
        "thresholdsStyle": {
          "mode": "off"
        }
      },
      "color": {
        "mode": "palette-classic"
      },
      "mappings": [],
      "thresholds": {
        "mode": "absolute",
        "steps": [
          {
            "value": null,
            "color": "green"
          },
          {
            "value": 80,
            "color": "red"
          }
        ]
      },
      "unit": "bps"
    },
    "overrides": []
  },
  "pluginVersion": "12.3.0",
  "targets": [
    {
      "refId": "A",
      "expr": "irate(node_network_receive_bytes_total{instance=~\"$node\", device=~\"$device\"}[5m]) * 8",
      "range": true,
      "instant": false,
      "datasource": {
        "type": "prometheus",
        "uid": "df5uftijpl4owd"
      },
      "editorMode": "builder",
      "legendFormat": "{{device}}_in下载"
    },
    {
      "refId": "B",
      "expr": "irate(node_network_transmit_bytes_total{instance=~'$node',device=~\"$device\"}[5m])*8",
      "range": true,
      "instant": false,
      "datasource": {
        "uid": "df5uftijpl4owd",
        "type": "prometheus"
      },
      "hide": false,
      "editorMode": "builder",
      "legendFormat": "{{device}} 网卡每秒下载流量"
    }
  ],
  "datasource": {
    "uid": "df5uftijpl4owd",
    "type": "prometheus"
  },
  "options": {
    "tooltip": {
      "mode": "single",
      "sort": "none",
      "hideZeros": false
    },
    "legend": {
      "showLegend": true,
      "displayMode": "list",
      "placement": "bottom",
      "calcs": []
    }
  }
}

5.6 指标深入分析

在 Grafana 中,"Open in Grafana Metrics" 是一个功能,主要用于快速跳转到与当前指标相关的详细分析页面,帮助用户更深入地查看和分析特定指标的详细数据。这个功能通常与 Prometheus、Loki 等数据源集成;

5.7 更多

5.7.1 复制

复制当前的面板,再编辑的时候可以选择粘贴面板,出现一个一样的面板

5.7.2 新建警报规则

为此面板添加告警规则,达到设定的阈值就会给配置的邮箱或其他发送告警通知;

5.7.3 隐藏图例

会把当前面板底部的说明给隐藏掉,说明就是说这条线是干什么的这种。

  • 未隐藏前
  • 隐藏后

5.7.4 获得帮助

把当前面板查询的原始数据、面板 JSON、时间区间等一次性打包,生成一个脱敏快照 (Snapshot)。

可以直接下载数据面板json数据直接复制,别人就可以通过json数据导入面板,看到当前模板的数据了,但不能进行指标等;

相关推荐
Mr_Xuhhh2 小时前
字节跳动面经
linux·服务器
JZC_xiaozhong2 小时前
物料编码在ERP与其他系统中的冲突与解决
运维·自动化·mdm·流程自动化·主数据管理·数据孤岛解决方案·数据集成与应用集成
早日退休!!!3 小时前
Linux内核内存布局:核心原理与工程实践
linux
宇钶宇夕3 小时前
ATV900系列变频器起重提升抱闸逻辑设置及源型接线指南
运维·自动化
哪里不会点哪里.3 小时前
Docker
运维·docker·容器
Learn Forever3 小时前
【Linux】iptables常用指令
linux·运维·服务器
Saniffer_SH3 小时前
【高清视频】笔记本电脑出现蓝屏、死机、慢、不稳定是这样连接分析M.2 SSD的
运维·服务器·网络·人工智能·驱动开发·嵌入式硬件·fpga开发
宴之敖者、3 小时前
Linux——编译器-gcc/g++
linux·运维·服务器
七七powerful3 小时前
docker 搭建wtsap代理
运维·docker·容器