首页 > 代码库 > 使用Grafana展示时间序列数据

使用Grafana展示时间序列数据

简介

Grafana是一个独立运行的系统,内置了Web服务器。它可以基于仪表盘的方式来展示、分析时间序列数据。

Grafana支持多种数据源,例如:Graphite、OpenTSDB、InfluxDB、Elasticsearch。你可以混合使用多种数据源。它对Graphite有以下增强的支持:

  1. 点击修改Metrics路径的每一个片断
  2. 快速的添加函数,支持点击函数参数以修改之
  3. 修改函数顺序
  4. 丰富的模板支持

在UI方面,Grafana具有以下特性:

  1. 丰富的、基于客户端的图表组件:Bar图、区域图、线图。支持多Y轴
  2. 支持点击/选择以缩放(Zoom)时间区间
  3. 支持混合多种图表组件,一起展示或者堆叠展示
  4. 支持定制图表的配色,支持黑白两种主题
  5. 支持拖放仪表盘面板(Panel),支持多种面板类型
  6. 支持脚本化仪表盘、仪表盘模板
  7. 通过来自数据源的事件(例如Graphite的Events),可以对仪表进行标注
核心概念
术语 说明
数据源(Data Source) Grafana支持多种存储后端,这些后端称为数据源
Grafana为每种数据源开发了查询编辑器( Query Editor)以匹配后端的特点
组织(Organization) 引入组织机构的概念,以便一个Grafana实例可以被多个可能不受信任的组织使用
用户(User) Grafana用户可以归属于1个或者多个组织
行(Row) 仪表盘中的逻辑分段
面板(Panel)

仪表盘中最基本的可视化单元,每个面板提供查询编辑器。Grafana目前内置了Graph, Singlestat, Dashlist和Text这几种面板

每种面板都具有一些样式、格式化选项,你可以利用它们设计出漂亮的图表

可以通过拖拽,在仪表盘中重新放置面板,也可以缩放其大小

查询编辑器(Query Editor) 依据特定数据源设计的表单,用以查询需要的Metrics
仪表盘(Dashboard) 一系列面板的集合,这些面板被组织在一个或者多个行中
安装与配置
安装Grafana

依次执行下面的命令完成安装:

 
 
Shell
 
1
2
3
4
# CentOS
yum install initscripts fontconfig
wget https://grafanarel.s3.amazonaws.com/builds/grafana-3.1.1-1470047149.x86_64.rpm
rpm -Uvh grafana-3.1.1-1470047149.x86_64.rpm

设置为开机启动:

 
 
Shell
 
1
2
/bin/systemctl daemon-reload
/bin/systemctl enable grafana-server.service

启动服务:

 
 
Shell
 
1
systemctl start grafana-server.service
配置文件
环境变量配置

当Grafana服务启动时,会读取 /etc/sysconfig/grafana-server 中的环境变量。你可以修改日志目录、数据存储目录等变量。

默认的,日志文件存储目录为/var/log/grafana,数据存储目录为/var/lib/grafana。默认使用SQLite数据库/var/lib/grafana/grafana.db。

主配置文件

如果基于deb/rpm包进行安装,则主配置文件的位置为: /etc/grafana/grafana.ini 。使用命令行参数 --config可以覆盖此位置。主配置文件说明如下:

配置项 说明
  instance_name Grafana服务的名称,默认为${HOSTNAME},即环境变量HOMENAME的值
[paths] data 在何处存放SQLite3数据库文件、基于文件的Session,以及其它数据
logs 在何处存放日志
[server] http_addr 内置Web服务的监听地址,默认绑定所有地址
http_port 内置Web服务的监听端口,默认3000
protocol http或者https
cert_file https证书文件
cert_key https证书密钥
[database] type 数据库类型:mysql、postgres或者sqlite3
path sqlite3数据库文件路径
host mysql或postgres的主机:端口,例如 127.0.0.1:3306 
name 数据库名称默认grafana
user 数据库用户
password 数据库密码
[security] admin_user Grafana管理员用户,默认admin
admin_password Grafana管理员密码,默认admin
login_remember_days 记住登陆的最大天数
secret_key 用于签名记住登陆的Cookie
disable_gravatar 禁用头像
[log] mode 日志记录方式,console、file或者syslog。可以用空格分开多个方式
  level 日志记录级别,debug、info、warn、error、critical
使用Grafana

使用Grafana的日常工作包括:用户管理、系统管理、仪表盘设计、数据源管理,等等。所有这些工作都在Web界面http://GRAFANA_HOST:3000  完成。该界面比较友好,适合最终用户。

配置Graphite数据源

点击Web界面左上角的图标,下拉列表中选择Data Sources,即可管理数据源。

点击Add data source按钮,添加新的数据源,参考下图:

技术分享

注意Access设置成proxy,则数据通过Grafana间接获取,否则,数据直接通过客户端获取。添加Graphite数据源后,可以点击Dashboards选项卡,获得其预置的仪表盘Graphite Carbon Metrics并导入到Grafana中。

设计仪表盘

点击Web界面左上角的图标,下拉列表中选择Dashboards  ? New,可以新建仪表盘。在新仪表盘中,点击左侧的绿条,可以添加新的面板;点击右下侧ADD ROW按钮则可以新建一行。

参考:https://blog.gmem.cc/time-series-data-renderering-with-grafana

使用Grafana展示时间序列数据