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.serviceDocker 安装
# 在线安装
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
使用
- 配置界面展示模板 http://grafana.com/dashboards
- 支持配置 alert 或和 alertmanager 对接
基本概念
- 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 配置(参考)
- Query 数据指标设置
- 图表(Panel)的设置区域一共可以分为三部分:
- 图表设置区
Panel titleTooltip鼠标放上线时显示信息,支持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 配置参考
- 如 Y 轴显示未百分比:可以将
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 Dashboards for Prometheus Exporter
- Grafana Dashboards
- AKA ES Nginx Logs
- grafana/loki 日志采集
- redis
- json 插件
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 的详细解释:
-
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 命令:
-
查看设备映射名称:
bashls -l /dev/mapper/这个命令会列出所有
/dev/mapper/下的设备名称,很多都会是符号链接,指向dm-x。例如,你可能会看到:centos-root -> ../dm-0这表示
dm-0对应的是名为centos-root的逻辑卷。 -
查看挂载点:
bashdf -hT这个命令会显示文件系统挂载点。如果你的系统使用了 LVM,你会在
Filesystem列看到/dev/mapper/下的设备名,或者在某些情况下直接看到/dev/dm-0。 -
查看 Device Mapper 详细信息:
bashsudo dmsetup info /dev/dm-0这个命令会提供
dm-0的详细信息。