Back to 日志集中架构方案

See also InfluxDBKibana、[[]]

Grafana

Grafana 是一个开源的度量分析与可视化套件。纯 Javascript 开发的前端工具,通过访问库(如InfluxDB),展示自定义报表、显示图表等。大多使用在时序数据的监控方面。

同 Kibana 类似,但 Grafana 的UI更加灵活,有丰富的插件,功能强大。

1. 基本概念

1.1. Data Source

grafana支持多种时序数据源。每种数据源,都有各自的查询编辑器。

目前官方支持了如下几种数据源:

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

1.2. Organization

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

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

1.3. User

一个用户可以属于一个或多个组织。在不通组织中可以被设置不同角色。

1.4. Row

在一个Dashboard,“行“是用来组合各个Panel的。一行有12个单元,可以将panel设置成不同的单位宽度。更不错的是,grafana在所有分辨率的屏幕下,都能适应的很好。

1.5. Panel

在 Grafana 中,Panel是基础呈现块。每个Panel都提供了查询编辑器Query Editor,辅助我们从DataSource提取所展示的信息。

每种Panel都有多样的配置和展现方式,它可以在Dashboard上拖拽和重绘大小。

官方提供的Panel有如下:

Graph可以提供折线图、柱状图等能力,可以通过Plugin添加其它图表。Singlestat如同其名,是用来展示单个字段的状态。Dashlist和Text是特殊的panel,它不连接任何Data Source。

使用Dashborad变量(下拉菜单),可以动态的配置panel。使用Repeating Panel function可以动态的创建和移除panel。panel的时间一般采用Dashborad上的time picker,但也可以自定义时间。

panel很容易被分享,可以导出这个panel的json文档。

1.6. Query Editor

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

1.7. Dashboard

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

2. Play in Docker

https://hub.docker.com/r/grafana/grafana

https://github.com/grafana/grafana/tree/master/packaging/docker


3. Getting started

https://grafana.com/docs/grafana/latest/guides/getting_started/

3.1. Using InfluxDB in Grafana

https://grafana.com/docs/grafana/latest/features/datasources/influxdb/

4. Reference