Grafana与Elasticsearch

之前一直用ELK体系里的Kibana做ES的WEB前端展示,kibana功能简单,可以直接显示log的内容,非常人性化,缺陷是没有权限、用户管理(我之前用Nginx和haproxy其中之一来代替),图形展示不够丰富,管理api等限制,更由于我需要更丰富的图形展示功能,所以开始寻找他的替代品Grafana。

Grafana简绍:

  1. Grafana是用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。dashboard中显示了你不同metric数据源中的数据。
  2. Grafana最常用于因特网基础设施和应用分析,但在其他领域也有机会用到,比如:工业传感器、家庭自动化、过程控制等等。
  3. Grafana有热插拔控制面板和可扩展的数据源,目前已经支持Graphite、InfluxDB、OpenTSDB、Elasticsearch。

这里先简单介绍下我的应用场景,ES用作时序数据库,后端agent每分钟读取云平台的性能监控数据,通过Kafka存到ES里。使用JSON数据存储格式,ES每天1.8亿条doc,因为数据包比较小,ES的

Primary Size每天30多G。

数据存储格式如下:

Grafana展示的效果截图:

具体实现:

一、添加elasticsearch数据源

默认Grafana是安装了ES插件的,如果没装需要安装相应data source插件。

点击Data Sources-->+ Add data source--> Type-->elasticsearch

:代理访问(access proxy)意味着,Grafana的后端将代理从浏览器的所有请求,并将它们发送到数据源。这很有用,因为它可以消除CORS(跨域站点资源)的问题,以及消除到浏览器的传播认证。

如果你选择直接访问(access direct)必须更新Elasticsearch配置允许从浏览器进行其他域的访问。可以通过在elasticsearch.yml指定如下配置选项:

http.cors.enabled: true
http.cors.allow-origin: "*"

二、Metric查询编辑器

Elasticsearch查询编辑器允许选择多个指标和组由多个条款或过滤器。在右边使用加号和减号图标来添加/删除索引或按子句分组。有些度量值和组子句都有选项,单击选项文本以展开视图并按选项编辑公制或组。

  1. Query:Lucence查询语法,跟kibana的查询一样,详情请查阅ES的官方文档
  2. Metric:计量的标准,可以取最大、最小、平均值或者count条目数等,Options可以进行脚本的计算,这里我把value的值乘以8,来进行网络Byte和bite的换算。
  3. Group by:排序标准。可以以时间轴进行排序,也可以以自定义的term进行排序。需要这里需要注意一点,ES里如果需要以自定义的字符串term进行排序,会报错:"Fielddata is disabled on text fields by default.";报错信息如下图所示:

    解决办法是用"keyword"进行排序,需要手动加入后缀‘.keyword‘,参考文档如下:https://www.elastic.co/guide/en/elasticsearch/reference/current/fielddata.html

  4. Query里也可以用变量来代替,变量是在templating里预先定义好的。后面再详细介绍templating的概念。

三、Axes选项

这里可以进行X轴和Y轴的定义。

  1. Unit设置单位的换算,grafana这里自带了多种单位换算,包括时间、吞吐、温度等;
  2. X-Axis里"mode"的选择,如果是要曲线图可以选择"Time",如果是要画柱状图可以选择"histogram"

四、Legend选项

这里主要进行图上显示文字的设置。

如果不勾选“show”则不会在图上显示相关value的信息。

五、Display选项

这里主要进行如何画图的一些设置。也可以在图上设置阀值,超出阀值会自动突出显示。

  1. Draw Mode:绘制模式,选择线绘图还是柱状图绘图,更改之后需要和Axes中X-Axis的modes联调,才能正确绘图。

    Mode Option: ‘Fill’填充程序,如果设置为0,则不填充,完全是一条线的形式展示。如图所示:

    ‘Staircase’如果勾选则以阶梯的形式画图,如图示:

  2. Stacking & Null value:这里需要注意‘Null value’的选择,选择‘connected’,在空值的时候画图会自动把线进行前后衔接,如果设置为零,会画出驼峰的形状。
  3. Thresholds:阀值的设置:

效果图如下:

六、Alert选项

报警设置,需要提前配置好报警邮箱,遗憾的一点Elasticsearch目前版本还不支持Alert的配置,我已经在grafana的github issue上给ES投了一票,建议有类似需求的同学也积极参与进来。

七、Templating

Templating在dashboard manage里设置:

"Edit"添加变量,变量创建完成会在dashboard顶部显示,这里同样用的Lucene的查询语法:

变量的使用,在Metric里面用‘$’或者‘[[]]’进行变量的调用:

另外在General的Title里面也可以调用templating里定义的变量,这样图的标题也会随着变量的改变而改变。

最后强调一点,更改完所有配置之后不要忘记点击保存按钮进行保存。

更多详细配置见文档:http://docs.grafana.org/features/datasources/elasticsearch/#using-elasticsearch-in-grafana

Grafana官方文档:http://docs.grafana.org/

时间: 2024-11-03 01:11:49

Grafana与Elasticsearch的相关文章

用Grafana为Elasticsearch做日志分析

用Grafana为Elasticsearch做日志分析 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs Grafana是一个开源的.功能强大的指标仪表板和图形编辑器工具,它面向Graphite.Elasticsearch.OpenTSDB.Prometheus和InfluxDB等数据源.目前Grafana的最新版本为2.6版. Grafana仪表板界面如下: Graphite:Graphite是一个可扩展的实时图表,

Metrics+ElasticSearch+grafana

Metrics+ElasticSearch+grafana--性能监控解决方案 https://blog.csdn.net/Shiyaru1314/article/details/76906461 利用Metrics+ElasticSearch+grafana来构建监控平台 Metrics 采集数据 ElasticSearch 存储数据 Grafana 显示数据 Metrics Metrics.NET是一个给CLR提供度量工具的包,在c#中嵌入metrics代码,可以方便对业务代码的各个指标进行

安装grafana

安装 grafana 安装依赖程序: sudo  rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch vi /etc/yum.repos.d/elasticsearch.repo   [elasticsearch-1.0]   name=Elasticsearch repository for 1.0.x packages   baseurl=http://packages.elasticsearch.org/

使用 StatsD + Grafana + InfluxDB 搭建 Node.js 监控系统

在石墨,我们之前使用 ELK 搭了一套监控图表,由于一些原因,比如: 1.Kibana 经常查日志查挂2.Kibana 的图表不太美观.不够灵活所以调研了一下,选择用 StatsD + Grafana + InfluxDB 搭建一套新的监控系统. 工具简介 StatsD 是一个使用 Node.js 开发的简单的网络守护进程,通过 UDP 或者 TCP 方式侦听各种统计信息,包括计数器和定时器,并发送聚合信息到后端服务,例如 Graphite.ElasticSearch.InfluxDB 等等,这

grafana的应用-新建模板

一.关于grafana的应用:   grafana一般是和一些时间序列数据库进行配合来展示数据的,例如:Graphite.OpenTSDB.InfluxDB等.grafana是用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建.共享.浏览数据.dashboard中显示了你不同metric数据源中的数据.grafana最常用于因特网基础设施和应用分析,但在其他领域也有机会用到,比如:工业传感器.家庭自动化.过程控制等等.grafana有热插拔控制面板和可扩展的数据源,目前已经支持Gr

Grafana官方文档翻译

欢迎来到Grafana文档 Grafana是一个开源指标分析和可视化套件. 它最常用于可视化基础设施和应用程序分析的时间序列数据,但许多应用于其他领域,包括工业传感器,家庭自动化,天气和过程控制. 基本概念 本文档是对Grafana中基本概念的"自下而上"介绍,可以用作开始熟悉核心功能的起点. 数据源 Grafana支持您的时间序列数据(数据源)的许多不同的存储后端. 每个数据源都有一个特定的查询编辑器,该编辑器针对特定数据源公开的功能和功能进行自定义.以下数据源正式支持:Graphi

使用Grafana展示时间序列数据

简介 Grafana是一个独立运行的系统,内置了Web服务器.它可以基于仪表盘的方式来展示.分析时间序列数据. Grafana支持多种数据源,例如:Graphite.OpenTSDB.InfluxDB.Elasticsearch.你可以混合使用多种数据源.它对Graphite有以下增强的支持: 点击修改Metrics路径的每一个片断 快速的添加函数,支持点击函数参数以修改之 修改函数顺序 丰富的模板支持 在UI方面,Grafana具有以下特性: 丰富的.基于客户端的图表组件:Bar图.区域图.线

使用statsd+graphite+grafana构建业务及性能监控模块

近些年随着DevOps概念越来越收到重视,除了传统的Splunk,Zabbix外在开源领域也有越来越多的软件可供使用.从数据收集,时序数据库,图形展示等主要方面有各类可扩展的软件用于搭建一个数据监控平台(详细列表),Logstash+elasticsearch+kibana算是被写的比较多的,本文将偏重于业务数据及性能的监控而不是传统的机器参数的监控,所以本文以statsd+graphite+grafana在centos6上的安装配置为例. 三个组件的说明(https://blog.pkhamr

Grafana的基本使用

Grafana的基本使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 简单的来说,Grafana 是基于JS开发的,功能齐全的度量仪表盘和图形编辑器,帮助开发人员发现问题的工具.Grafana 是一个开源仪表盘工具,它可用于Graphite.InfluxDB与 OpenTSDB 一起使用.最新的版本还可以用于其他的数据源,比如Elasticsearch.从本质上说,它是一个功能丰富的Graphite-web替代品,能帮助用户更简单地创建和编辑仪表盘.它包含一个独一无二的Gr