Grafana 是一个开源的度量分析、监控可视化解决方案,支持很多种时序数据库,如 graphite、InfluxDB、Prometheus、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 导入模板,支持 url 和 id,如 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 Y 的 Unit 参数,将其设置为 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 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 的详细解释:
-
Device Mapper (DM):
dm 是 Device Mapper 的缩写。它是 Linux 内核中的一个框架,用于创建虚拟块设备,将物理或逻辑块设备映射到虚拟设备上
- 它允许在底层存储设备之上实现各种高级功能,如 LVM、RAID、设备加密 (dm-crypt) 和 多路径 (multipath) 等
-
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 命令:
-
查看设备映射名称:
这个命令会列出所有 /dev/mapper/ 下的设备名称,很多都会是符号链接,指向 dm-x。例如,你可能会看到:
centos-root -> ../dm-0
这表示 dm-0 对应的是名为 centos-root 的逻辑卷。
-
查看挂载点:
这个命令会显示文件系统挂载点。如果你的系统使用了 LVM,你会在 Filesystem 列看到 /dev/mapper/ 下的设备名,或者在某些情况下直接看到 /dev/dm-0。
-
查看 Device Mapper 详细信息:
sudo dmsetup info /dev/dm-0
这个命令会提供 dm-0 的详细信息。