暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

grafana以elasticsearch为数据源来做监控指标学习

是赐赐啊!🦄 2024-07-25
301

Grafana整合ElasticSearch数据源绘制Dashboard展示

0、前置信息

0.1、版本信息

grafana版本:v8.1.2
ElasticSearch数据源版本:7.6.2
ElasticSearch7.6.2版本对应的Lucene版本:8.4.0

0.2、官网地址

grafana官网地址:https://grafana.com/docs/grafana/v8.1/
grafana模板地址:https://grafana.com/grafana/dashboards/
Lucene查询官方文档:
https://lucene.apache.org/core/8_11_1/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_description

0.3、ElasticSearch索引字段信息

{
  "mappings": {
    "_doc": {
      "properties": {
        "appId": {
          "type": "keyword"
        },
        "appName": {
          "type": "text",
          "analyzer": "ik_max_word"
        },
        "executeTime": {
          "type": "long"
        },
        "httpCode": {
          "type": "integer"
        },
        "message": {
          "type": "text",
          "analyzer": "ik_max_word"
        },
        "requestIp": {
          "type": "keyword"
        },
        "requestMethod": {
          "type": "keyword"
        },
        "requestParams": {
          "type": "keyword"
        },
        "requestPath": {
          "type": "keyword"
        },
        "requestReferer": {
          "type": "keyword"
        },
        "requestTime": {
          "type": "date",
          "format": "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
        },
        "requestUrl": {
          "type": "keyword"
        },
        "responseTime": {
          "type": "date",
          "format": "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
        },
        "scheme": {
          "type": "keyword"
        },
        "statusCode": {
          "type": "integer"
        },
        "successFlag": {
          "type": "boolean"
        },
        "targetAppId": {
          "type": "keyword"
        },
        "targetAppName": {
          "type": "text",
          "analyzer": "ik_max_word"
        },
        "targetServer": {
          "type": "keyword"
        },
        "tid": {
          "type": "keyword"
        }
      }
    }
  }
}

索引字段信息

1、Grafana添加ElasticSearch数据源

此处可以参考官网文档添加数据源(如图所示),当然也可参考下面操作:

grafana官网文档地址: https://grafana.com/docs/grafana/v8.1/datasources/elasticsearch/

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_03

在Grafana的Setting中点击DataSources,参照下图配置数据源信息

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_04

说明:

1> 上图中index name为单一索引,按天生成,例如:索引名为:es-gateway-log-2022-03-15,所以配置时,index name配置为 [es-gateway-log-]YYYY.MM.DD,Pattern选择的值为Daily,若索引为按月生成,则index name配置为 [es-gateway-log-]YYYY.MM,Pattern选择的值为Monthly

2> ElasticSearch版本的选择要与连接的ElasticSearch版本一致

2、Grafana中添加Panel进行数据展示

2.1、单一字段统计数据量

例如:查询过去一定时间段内,请求的总访问量

展示效果如下图:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_05

操作步骤如下:

1> 添加一个空白的Panel

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_06

2> 绘制Panel展示数据

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_07

说明:

1> Panel面板数据展示方式,可以参看官方介绍  https://grafana.com/docs/grafana/v8.1/visualizations/

2> 关于展示数据的字体大小、颜色均可以通过改变对应的属性值修改

3> 对于字段名的修改,可以参考下图

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_时间段_08

2.2、根据单一字段查看数据走势

例如:查询过去一定时间段内,请求的访问量

展示效果如下所示:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_09

操作步骤如下:

1> 添加一个空白的Panel

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_10

2> 绘制Panel展示数据

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_11

2.3、根据多个字段查看数据走势

例如:查询一定时间段内,各应用的访问流量

展示效果如下所示:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_12

操作步骤如下:

1> 添加一个空白的Panel

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_13

2> 绘制Panel展示数据

展示样式选择:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_14

展示数据配置:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_15

说明:

如果需要调整各个应用走势曲线的颜色,可以在展示效果页面上,点击要修改的应用对应的颜色,选择对应颜色即可,可参考下图:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_16

2.4、根据某一字段分组汇总展示

例如:根据应用ID分组展示选定时间段内的请求数据

展示效果如下所示:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_17

操作步骤如下:

1> 添加一个空白的Panel

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_18

2> 绘制Panel展示数据

展示样式选择:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_时间段_19

展示数据配置:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_时间段_20

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_21

2.5、根据不同条件同时展示多个柱状图

例如:展示在所选时间段内访问的总请求数,访问成功的请求数,访问失败的请求数(这里的判断条件根据字段 successFlag)

展示效果如下:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_22

操作步骤如下:

1> 添加一个空白的Panel

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_23

2> 绘制Panel展示数据

展示样式选择:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_24

展示数据配置:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_25

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_26

2.6、根据某一字段展示平均数据

例如:展示所选时间段内服务的平均执行时间

展示效果如下所示:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_时间段_27

操作步骤如下:

1> 添加一个空白的Panel

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_时间段_28

2> 绘制Panel展示数据

展示样式选择:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_29

展示数据配置:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_30

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_时间段_31

2.7、列表展示ElasticSearch原生数据

例如:展示kibana中当前索引数据,这里以两种方式展示:

方式1:展示ElasticSearch原始数据

展示效果如下所示:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_时间段_32

操作步骤如下:

1> 添加一个空白的Panel

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_33

2> 绘制Panel展示数据

展示样式选择:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_时间段_34

展示数据配置:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_35

方式2:可选择字段展示ElasticSearch原生数据

展示效果如下所示:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_36

操作步骤如下:

1> 添加一个空白的Panel

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_时间段_37

2> 绘制Panel展示数据

展示样式选择:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_时间段_38

展示数据配置:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_39

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_时间段_40

2.8、多条件查询其中某一字段不为空

例如:分组展示服务执行时间大于2秒的请求数据

展示效果如下所示:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_41

操作步骤如下:

1> 添加一个空白的Panel

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_时间段_42

2> 绘制Panel展示数据

展示样式选择:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_43

展示数据配置:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_44

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_45

说明:

当前ElasticSearch7.6.2版本对应的Lucene版本为8.4.0,关于Lucene的查询语法,可参见官方文档:

 https://lucene.apache.org/core/8_11_1/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_description

2.9、查询字段为空的数据

例如:由于在ElasticSearch存储的数据包含有appId为空的数据,所以需要将这部分数据查询出来,同时因为这部分数据的appId和appName值为空,所以查询出来的数据不会包含这些字段值。

展示效果如下所示:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_时间段_46

操作步骤如下:

1> 添加一个空白的Panel

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_47

2> 绘制Panel展示数据

展示样式选择:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_48

展示数据配置:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_49

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_50

2.10、计算成功率、失败率

例如:计算在一定时间段内,服务处理请求的成功率和失败率(这里以successFlag字段作为筛选条件)

展示效果如下所示:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_时间段_51

操作步骤如下:

1> 添加一个空白的Panel

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_52

2> 绘制Panel展示数据

展示样式选择:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_53

展示数据配置:

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_54

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_时间段_55

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_数据_56

数据百分号展示设置:

 

Grafana的数据源依赖日志平台产生的ES数据 grafana配置es数据源_字段_57

转载于

https://blog.51cto.com/u_16213616/9982113?articleABtest=0

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论