Grafana介绍

Grafana是一个开源的度量分析与可视化套件。纯 Javascript 开发的前端工具,通过访问库(如InfluxDB),展示自定义报表、显示图表等。大多使用在时序数据的监控方面,如同Kibana类似。Grafana的UI更加灵活,有丰富的插件,功能强大。

Grafana支持许多不同的数据源。每个数据源都有一个特定的查询编辑器,该编辑器定制的特性和功能是公开的特定数据来源。

官方支持以下数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB。

每个数据源的查询语言和能力都是不同的。你可以把来自多个数据源的数据组合到一个仪表板,但每一个面板被绑定到一个特定的数据源,它就属于一个特定的组织。下面我们来一起感受一下grafana。

1、Grafana安装

使用的是ubuntu 16.04TLS,所以找到官网相对应的Ubuntu方式,这是官网的链接地址:https://grafana.com/grafana/download?platform=linux

wget https://dl.grafana.com/oss/release/grafana_5.4.2_amd64.deb
sudo dpkg -i grafana_5..2_amd64.deb

启动grafana
方式一、Start Grafana by running:

sudo service grafana-server start
sudo update-rc.d grafana-server defaults //设置开机启动(可选)

方式二、To start the service using systemd:

systemctl daemon-reload
systemctl start grafana-server
systemctl status grafana-server
sudo systemctl enable grafana-server.service //设置开机启动

2、Grafana基本概念

Data Source
Organization
User
Row
Panel
Query Editor
Dashboard

Data Source

grafana支持多种时序数据源。每种数据源,都有各自的查询编辑器。
目前官方支持了如下几种数据源:

Graphite
InfluxDB
OpenTSDB
Prometheus
Elasticsearch
CloudWatch
在一个Dashboard中,可以结合多种数据源的数据。但是,一个Panel只能使用一个数据源(属于特定的组织&&)。

组织(Organization)

有些场景是一个grafana服务商与多个客户合作,客户之间是隔离的,所以grafana也就支持多组织。但在更多的场景下,grafana会被单独部署到某个客户环境中。
每个组织有一个或多个Data Source。Dashboard和组织也是多对一的关系。

在grafana中的组织下的每个用户,都可以使用属于这个组织的DataSoure和Dashboard。权限篇

User

一个用户可以属于一个或多个组织。在不通组织中可以被设置不同角色。
Grafana也支持多样的认证方式。比如集成database,或来自外部的SQL server,或是一个LDAP server。
详见User Auth。

Row

在一个Dashboard,“行“是用来组合各个Panel的。一行有12个单元,可以将panel设置成不同的单位宽度。更不错的是,grafana在所有分辨率的屏幕下,都能适应的很好。
使用Repeating Row Function,可以通过选择下拉菜单的参数,动态控制创建和移除行(这些行可能有Panel,还没尝试&&)
点击Row title,可以折叠行。如果在保存时,一个Dashboard的某些行被折叠,则折叠的状态也会被保存。浏览时如果没有再次展开它,则里面的数据也不会预加载。

Panel

在grafana中,Panel是基础呈现块。每个Panel都提供了查询编辑器Query Editor,辅助我们从DataSource提取所展示的信息。
每种Panel都有多样的配置和展现方式,它可以在Dashboard上拖拽和重绘大小。
官方提供的Panel有如下:

Graph
Singlestat
Dashlist
Table
Text
Graph可以提供折线图、柱状图等能力,可以通过Plugin添加其它图表。Singlestat如同其名,是用来展示单个字段的状态。Dashlist和Text是特殊的panel,它不连接任何Data Source。
使用Dashborad变量(下拉菜单),可以动态的配置panel。使用Repeating Panel function可以动态的创建和移除panel。panel的时间一般采用Dashborad上的time picker,但也可以自定义时间。
panel很容易被分享,可以导出这个panel的json文档。

Query Editor

如上介绍的,查询编辑器也是数据源间不同的。编辑器可以引用Dashboard的变量,来达到动态控制panel的目的。QE也可以添加多次Query,来获取多个series。每次Query的结果,可以通过输入#xxx给下一次引用,进行更高级的查询。

Dashboard

最终,所有的panel和row汇总到了dashboard中。右上角的time picker可以控制panel的时间。dashboard能被方便的共享。可以使用Snapshot的特性,将当前的所有视图数据导出到静态的JSON文档中。dashboard也可以被打标签。

Grafana特性
Panel
Dashboard Features
Data Source
Alerting
Keyboard Shortcuts

上一篇:Elasticsearch,Kibana,Logstash,NLog实现ASP.NET Core 分布式日志系统


下一篇:docker基础及安装