1. 前言
Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能,可以分析指标和日志。使用Grafana可以制作出漂亮的仪表面板,它是一个炫酷的可视化监控、分析利器。无论我们的数据在哪里,或者数据所处的数据库是什么类型,都可以将它们与Grafana精美地结合在一起。
Grafana软件版本当前已经更新到Grafana8,但是目前用的比较多的是Grafana6和Grafana7,各个版本绘制图形面板的时候语法会有差别,本文将以Grafana7进行讲解,介绍其安装以及使用。
2. 安装
2.1 软件安装
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-7.2.0-1.x86_64.rpm
yum install grafana-enterprise-7.2.0-1.x86_64.rpm -y
systemctl start grafana-server
安装完毕后,使用IP地址+3000端口即可登录,默认用户名和密码均为:admin,第一次登录会提示修改密码。
2.2 插件安装
# 饼图插件
grafana-cli plugins install grafana-piechart-panel
# 时钟插件
grafana-cli plugins install grafana-clock-panel
# zabbix插件
grafana-cli plugins install alexanderzobnin-zabbix-app
systemctl restart grafana-server
2.3 Grafana相关文件和目录
Grafana安装完成后会生成一些文件
/etc/grafana/grafana.ini Grafana配置文件
/var/log/grafana/grafana.log Grafana日志文件
/var/lib/grafana/grafana.db Grafana数据保存文件
/var/lib/grafana/plugins/ Grafana插件保存目录
3. 数据保存形式
3.1 数据源
Grafana本身并不保存监控数据,需要从其他数据源获取数据。Grafana支持接入很多的数据源,如下图是目前支持的数据源:
本文将以Prometheus作为数据源进行阐述,数据查询使用PromQL语法,关于PromQL语法的使用,上一篇文章已经详细讲到,可以参考。
3.2 Panels(图形面板)
Grafana图形面板是一个可视化数据的用户界面,用于定义数据源查询,以及数据转换和格式化,是基本的可视化构建块。并且每个面板都有一个特定于面板中所选数据源的查询编辑器,查询编辑器允许提取完美的可视化以显示在面板上。每个面板都有多种样式和格式选项。面板可以在仪表板上拖放和重新排列,也可以根据需要调整大小。
制作一个Panel,需要进行大量的编辑。面板编辑器包括一个查询构建器和一系列选项,可以使用这些选项来转换数据并向面板添加信息。如下图是一个完整的Panel:
3.3 Query editors(查询编辑器)
上面讲到每个面板都有一个特定于面板中所选数据源的查询编辑器,它是帮助编写查询的表单。根据我们所选的数据源,查询编辑器可能会提供自动完成、指标名称或变量建议。
由于数据源不同,查询语句也会有差异,所以不同的数据源可能看起来具有不同的查询编辑器。比如数据源为Prometheus,则查询编辑器的查询语言为PromQL,数据源为Mysql,则查询编辑器的查询语言为SQL语句。
Prometheus数据源查询器例子:
Mysql数据源查询器例子:
4. 可视化
当我们绘制图形时,需要选择合适的可视化方式(Visualization)。Grafana 提供了多种可视化来支持不同的用例,这一部分将重点介绍内置面板、它们的选项和典型用法。
Grafana支持的可视化方式有:Graph、Stat、Gauge、Bar gauge、Table、Text、Heatmap、Alert list、Dashboard list、News、Pie Chart、Logs。本文将着重介绍使用得比较多的几个可视化。
4.1 Graph
Graph是图形面板,是创建dashboard时默认的面板。图形面板可以将指标呈现为一条线、一条点路径或一系列条形,这种类型的图表用途广泛,几乎可以显示任何时间序列数据。对于基于时间的折线图、面积图和条形图,建议使用默认的时间序列可视化。
以下是一个Graph的典型例子,比如显示操作系统负载:
4.2 Gauge
Gauge是仪表面板,仪表可视化是一种单值可视化,可以为每个系列、列或行重复一个仪表。Gauge支持使用阈值控制背景或值颜色。
以下是一个Gauge的典型例子,比如显示操作系统当前打开的文件描述符(文件句柄数):
4.3 Stat
Stat面板可视化显示一个带有可选图形迷你图的大型统计值。Stat支持使用阈值控制背景或值颜色。默认情况下,统计面板显示以下内容之一: 只是单个系列或字段的值;多个系列或字段的值和名称。
以下是一个Stat的典型例子,比如显示操作系统的CPU核心数:
4.4 Table
Table是表格面板,要在表格布局中显示数据,请使用表格可视化。表格面板可视化非常灵活,支持时间序列和表格、注释和原始JSON数据的多种模式。此面板还提供日期格式、值格式和着色选项。
以下是一个Table的典型例子,比如显示操作系统各磁盘的使用情况信息:
4.5 Pie chart
Pie chart是一个饼图可视化,饼图以饼图切片的形式显示来自一个或多个查询的缩减系列或系列中的值,因为它们彼此相关。切片的弧长、面积和圆心角都与切片值成正比,因为它与所有值的总和有关。如果想要以美观的形式快速比较一小组值时,可以使用这种类型的图表。
以下是一个Pie chart的典型例子,比如显示http请求返回状态码占比:
5.用户管理
生产环境中,需要严格区分权限,不同的部门需要赋予不同的用户权限。
Grafana的用户权限分为:Admin、Editor、Viewer
Admin:管理员权限,可以做任意操作,权限最大,可以为所欲为;
Editor:可编辑权限,可以编辑图表,不能对用户进行操作;
Viewer:查看权限,只能查看,不能做任何编辑操作。
用户操作界面如下图,可以添加用户,设置权限。
6.案例演示
6.1 制作Panel
下面以磁盘的IOPS监控进行讲解,如何绘制一个图形
(1)添加数据源
(2)添加一个Panel
(3)选择Visualization为Graph(默认)
(4)编辑查询语法
Prometheus监控项中表示IOPS的指标,使用PromQL语法。
(5)设置指标显示格式
设置线条粗细,填充效果
设置监控指标单位,显示名称,数据精度(默认是auto自适应)
设置数据显示方式,是否以表格显示,最大值、最小值、平均值、当前值哪些需要显示
(6)得到最终效果图
6.2 导入模板
Grafana可以支持直接导入json模板
现提供三个完整的json模板,效果图如下(部分截图信息):
主机信息监控(node_exporter模板)
大屏监控信息
主机宕机监控信息
完整的json文件参考:https://github.com/Rainbowhhy/Grafana_dashboard
参考文档
https://grafana.com/docs/grafana/latest/getting-started/getting-started/
版权归原作者 rainbowhhyhhy 所有, 如有侵权,请联系我们删除。