1、Grafana简介
1.1、Grafana基本概念
Grafana
是一个通用的可视化工具。
‘
通用
’
意味着
Grafana
不仅仅适用于展示
Prometheus
下的监控数据,也同样适用于一些其他的数据可视化需求。在开始使用Grafana
之前,我们首先需要明确一些
Grafana
下的基本概念,以帮助用户能够快速理解Grafana
。
数据源(Data Source)
对于
Grafana
而言,
Prometheus
这类为其提供数据的对象均称为数据源(
Data Source
)。目前,
Grafana
官方提供了对:Graphite, InfluxDB, OpenTSDB, Prometheus, Elasticsearch, CloudWatch
的支持。对于Grafana管理员而言,只需要将这些对象以数据源的形式添加到
Grafana
中,
Grafana
便可以轻松的实现对这些数据的可视化工作。
仪表盘(Dashboard
)
通过数据源定义好可视化的数据来源之后,对于用户而言最重要的事情就是实现数据的可视化。在
Grafana
中,我们 通过Dashboard
来组织和管理我们的数据可视化图表:
如上所示,在一个
Dashboard
中一个最基本的可视化单元为一个
Panel
(面板),
Panel
通过如趋势图,热力图的形式展示可视化数据。 并且在Dashboard
中每一个
Panel
是一个完全独立的部分,通过
Panel
的
Query Editor(查
询编辑器)我们可以为每一个
Panel
自己查询的数据源以及数据查询方式,例如,如果以
Prometheus
作为数据源,
那在
Query Editor
中,我们实际上使用的
PromQL
,而
Panel
则会负责从特定的
Prometheus
中查询出相应的数
据,并且将其可视化。由于每个
Panel
是完全独立的,因此在一个
Dashboard
中,往往可能会包含来自多个
Data
Source
的数据。
Grafana
通过插件的形式提供了多种
Panel
的实现,常用的如:
Graph Panel
,
Heatmap Panel
,
SingleStat Panel以及
Table Panel
等。用户还可通过插件安装更多类型的
Panel
面板。
在Dashboard页面中,我们还可以定义一个Row(行),来组织和管理一组相关的Panel。
除了
Panel, Row
这些对象以外,
Grafana
还允许用户为
Dashboard
定义
Templating variables
(模板参数), 从而实现可以与用户动态交互的Dashboard
页面。同时
Grafana
通过
JSON
数据结构管理了整个
Dasboard
的定义,因此这些Dashboard
也是非常方便进行共享的。
Grafana
还专门为
Dashboard
提供了一个共享服务:
https://grafana.com/dashboards
,通过该服务用户可以轻松实现
Dashboard
的共享,同时我们也能快速的从中找到我们希望的Dashboard
实现,并导入到自己的
Grafana
中。
组织和用户
Grafana
除了提供灵活的可视化定制能力以外,还提供了面向企业的组织级管理能力。在
Grafana
中
Dashboard
是属于一个
Organization
(组织),通过
Organization
,可以在更大规模上使用Grafana,例如对于一个企业而言,我们可以创建多个
Organization
,其中
User
(用户)可以属于一个或多个不同的Organization
。 并且在不同的
Organization
下,可以为
User
赋予不同的权限。 从而可以有效的根据企业的组织架构定义整个管理模型。
2、部署 grafana 及接入 prometheus
2.1、安装grafana
https://mirrors.bfsu.edu.cn/grafana/yum/rpm/,这里下载版本为 grafana-7.3.7-1.x86_64.rpm
yum install grafana-7.3.7-1.x86_64.rpm
yum将其安装到路径为 /etc/grafana/
启动grafana
systemctl start grafana-server
2.2、将Grafana对接到Prometheus
将添加Prometheus作为默认的数据源,如下图所示,指定数据源类型为Prometheus并且设置Prometheus的 访问地址即可,在配置正确的情况下点击“Add”按钮,会提示连接成功的信息:
3、认识面板(Panel)
Panel
是
Grafana
中最基本的可视化单元。每一种类型的面板都提供了相应的查询编辑器
(Query Editor)
,让用户可以从不同的数据源(如Prometheus
)中查询出相应的监控数据,并且以可视化的方式展现。
Grafana
中所有的面板均以插件的形式进行使用,当前内置了
5
种类型的面板,分别是:
Graph
,
Singlestat
, Heatmap, Dashlist,
Table
以及
Text
通过
Grafana UI
用户可以在一个
Dashboard
下添加
Panel
,点击
Dashboard
右上角的
“Add Panel”
按钮,如下所示,将会显示当前系统中所有可使用的Panel
类型:
选择想要创建的面板类型即可。这里以
Graph
面板为例,创建
Panel
之后,并切换到编辑模式,就可以进入
Panel
的配置页面。对于一个Panel
而言,一般来说会包含
2
个主要的配置选项:
General
(通用设置)、
Metrics
(度量指标)。其余的配置则根据Panel
类型的不同而不同。
在
Metric
选项中可以定义了Grafana
从哪些数据源中查询样本数据。
Data Source
中指定当前查询的数据源,
Grafana
会加载当前组织中添
加的所有数据源。其中还会包含两个特殊的数据源:
Mixed
和
Grafana
。
Mixed
用于需要从多个数据源中查询和渲染 数据的场景,Grafana
则用于需要查询
Grafana
自身状态时使用。