Grafana 介绍

发布时间: 更新时间: 总字数:2197 阅读时间:5m 作者: IP上海 分享 网址

Grafana 是一个开源的度量分析、监控可视化解决方案,支持很多种时序数据库,如 graphite、InfluxDBPrometheus、Elasticsearch 等。

介绍

Grafana 提供各种各样漂亮的可视化界面,可以自己定制,也可以从 grafana 官网下载模板。

Grafana 默认监听于 TCP 协议的 3000 端口。

安装

RPM 安装

wget https://dl.grafana.com/oss/release/grafana-6.2.4-1.x86_64.rpm
yum localinstall grafana-6.2.4-1.x86_64.rpm
systemctl start grafana-server.service

Docker 安装

# 在线安装
docker run -d --name=grafana -p 3000:3000 grafana/grafana:8.4.7

# 离线安装
# docker load < grafana.tar
# docker tag $IMAGEID grafana:5.1
# docker run -d -p 3000:3000 grafana:5.1

说明:

  • 页面可访问:http://127.0.0.1:3000
    • /datasources 配置数据源
    • /dashboard/import 导入模板,支持 urlid,如 1860
  • 默认用户名密码都为:admin

使用

基本概念

  • Dashboard 面板,里面包含了无数个图表(Panel)
  • Panel(图表)是 Prometheus 中数据呈现的最小单元。Dashboard 是由一个个图表构成的
    • 图表(Panel)的设置区域一共可以分为三部分:
      • 预览区:用来预览设置的图表
      • 数据设置区:用来设置数据源、数据指标等
        • 支持配置:Query、Transform、Alert
      • 图表设置区:用来设置图表名称、Y 轴显示样式等图表细节
    • 数据设置区
      • Query 数据指标设置
        • Metrics 指标名,如 rate(system_cpu_usage[1m]),表示使用 1 分钟的数据变化率来显示 CPU 的变化情况
        • Legend 图例参考)设置定义时间序列的名称,可以使用预定义或自定义格式
          • Auto(自动) 显示唯一标签。如果序列有多个标签,也会显示所有重叠标签
          • Verbose(详细) 显示所有标签名称
          • Custom(自定义) 使用模板选择包含哪些标签
            • 例如,{{hostname}} 将被替换为标签 hostname 的标签值。清空输入框并单击输入框外的内容可选择其他模式
            • {{instance}}-1m,最终显示为 ip:9100-1m
        • Min Step 最小步长 表示图形里每两个点的最小数据间隔是多少
        • Resolution 精度
        • Format 格式 表示数据格式是什么,支持三种:
          • Time series 表示是时间序列数据,即随着时间的流动有源源不断的数据
          • Table 表示是一个表格数据
          • Heap Map 表示是热力图数据
      • Transform/Transformation 配置,对数据进行合并等操作,支持
        • Reduce
        • Merge
        • Series to rows
        • group by 等
      • Alert 配置(参考
  • 图表设置区
    • Panel title
    • Tooltip 鼠标放上线时显示信息,支持
      • Single 一个监控对象
      • All 所有监控对象
      • Hidden 隐藏
    • Graph style options
      • Fill opacity 设置透明度的一个填补的颜色。 填充的使用,例如,以显示该区域在线路线图,或作为色的酒吧一条线图。
    • Legend 图例 设置图例信息,例如:图例的显示位置、图例显示最大值、最小值
      • values 设置值的显示,比如最小、最大、平均、当前等值
    • Visualization 可视化 支持图形(Graph)、统计(Stat)、表格(Table)、文本(Text)等
    • Display 显示 设置图表样式相关信息
    • Axes 轴 设置轴的相关信息
      • 如 Y 轴显示未百分比:可以将 Left YUnit 参数,将其设置为 percent(0.0-1.0)
      • data/bytes(IEC)
        • SI(International System of Units,国际单位制) 标准,采用十进制换算。例如:1 MB = 10^6^ bytes = 1 000 000 bytes = 1000 kilobyte
      • data/bytes(SI)
        • IEC(International Electrotechnical Commission,国际电工委员会) 于 1998 年制定的标准,采用二进制换算。例如:1 MiB = 2^20^ bytes = 1 048 576 bytes = 1024 kibibytes
      • data rate/bytes(IEC)
      • data rate/bytes(SI)
      • and so one
      • 更多 Unit 配置参考
    • Thresholds 阈值 设置一个阈值,当超过指定的值,会有标记成背景颜色
      • 通常用来针对某个关键数据,当超过某个值进行高亮,方便一目了然查看数据
  • 直接链接至渲染后的图像 -> share -> 点击 Direct link rendered image

Grafana 内置参数

  • $__dashboard 当前 dashboard 的名称
  • $__from $__to 时间范围的毫秒值,可自定义格式,比如
    • {$__from: date :YYYY-MM-DD HH:mm:ss}
    • {$__from: date :seconds}
  • $__range 查询的时间区间大小,包含单位,比如:2d
  • $__range_s $__range_ms 查询的时间区间大小,分别是秒数和毫秒数
  • $__timeFilter 返回当前选择的时间范围表达式
    • 比如:time > now() -7d,常用于数据库作为 datasource 的时候
  • $__interval 查询的时间间隔,包含单位,比如:30s,2m
  • $__interval_ms 查询的时间间隔,毫秒值
  • $__rate_interval 求解速率函数,在 Grafana 7.2 引入,在大多数 rate 查询的情况下使用
    • 替代 $__interval
    • $__rate_interval 保证至少是 采集间隔(Scrape interval) 的四倍
    • 使用示例:rate(xxx{x=y}[$__rate_interval])

无数据报警

扩展插件

grafana-cli plugins install marcusolsson-json-datasource
grafana-cli plugins install simpod-json-datasource

运维

重置密码方法

用户名:admin,密码:admin

docker cp <d-id>:/var/lib/grafana/grafana.db /tmp/grafana.db
  • sqlite3 改数据
sqlite3 grafana.db
select * from user where login = 'admin';
update user set password = '59acf18b94d7eb0694c61e60ce44c110c7a683ac6a8f09580d626f90f4a242000746579358d77dd9e570e83fa24faa88a8a6', salt = 'F3FAxVm33R' where login = 'admin';
.exit
  • 重启服务
docker cp /tmp/grafana.db <d-id>:/var/lib/grafana/grafana.db
docker stop <d-id>
docker start <d-id>

dm-0 磁盘读写含义

在 Grafana 监控中,磁盘读写指标旁边的 dm-0 通常表示一个 Device Mapper 设备。很可能意味着你的系统使用了 LVM,并且 dm-0 就是你的一个文件系统 (比如根目录 //home) 实际挂载的逻辑卷。

以下是关于 dm-0 的详细解释:

  1. Device Mapper (DM)

    • dmDevice Mapper 的缩写。它是 Linux 内核中的一个框架,用于创建虚拟块设备,将物理或逻辑块设备映射到虚拟设备上
    • 它允许在底层存储设备之上实现各种高级功能,如 LVMRAID设备加密 (dm-crypt)多路径 (multipath)
  2. dm-0 的具体含义

    • dm-0 (以及 dm-1, dm-2 等) 是 Device Mapper 创建的虚拟块设备,编号从 0 开始
    • 在绝大多数 Linux 系统中,特别是使用了 LVM (Logical Volume Manager,逻辑卷管理器) 的系统,dm-0 最常见的作用就是代表一个逻辑卷 (Logical Volume, LV)。
  • LVM 逻辑卷的映射关系: LVM 会将创建的逻辑卷 (如 /dev/VolGroupName/LogVolName) 映射到一个 Device Mapper 设备 (如 /dev/dm-0)。在 /dev/mapper/ 目录下,通常会有一个符号链接指向这个 dm-x 设备。
    • 例如:/dev/mapper/centos-root -> ../dm-0

要确认 dm-0 具体是哪个逻辑卷或挂载点,你可以使用一些 Linux 命令:

  1. 查看设备映射名称:

    ls -l /dev/mapper/
    

    这个命令会列出所有 /dev/mapper/ 下的设备名称,很多都会是符号链接,指向 dm-x。例如,你可能会看到:

    centos-root -> ../dm-0
    

    这表示 dm-0 对应的是名为 centos-root 的逻辑卷。

  2. 查看挂载点:

    df -hT
    

    这个命令会显示文件系统挂载点。如果你的系统使用了 LVM,你会在 Filesystem 列看到 /dev/mapper/ 下的设备名,或者在某些情况下直接看到 /dev/dm-0

  3. 查看 Device Mapper 详细信息:

    sudo dmsetup info /dev/dm-0
    

    这个命令会提供 dm-0 的详细信息。

参考

  1. http://grafana.com/dashboards
  2. https://grafana.com/docs/grafana/latest/datasources/prometheus/query-editor/#legend
本文总阅读量 次 本站总访问量 次 本站总访客数
Home Archives Categories Tags Statistics