使用Grafana访问日志服务的Elasticsearch兼容接口

本文介绍如何使用Grafana访问日志服务的Elasticsearch兼容接口。

重要

本文档为阿里云原创文档,知识产权归阿里云所有,由于本文档旨在介绍阿里云与第三方产品交互的服务能力,因此可能会提及第三方公司或产品等名称。

前提条件

  • ES对接支持Grafana 8.x 9.x 10.x 11.x版本。本文以Grafana 11.4.0为例进行说明。

背景信息

Grafana是一款开源的数据可视化和监控平台,支持多种数据源,包括但不限于Graphite、InfluxDB、Prometheus、Elasticsearch等,并提供丰富的图表展示和数据查询功能。

针对习惯于使用Grafana分析Elasticsearch数据,但需要将Elasticsearch数据迁移到日志服务的用户,日志服务提供了兼容Elasticsearch的接口,便于他们使用GrafanaElasticsearch数据源插件访问日志服务进行查询和分析。

另外,日志服务也提供了原生的Grafana数据源插件。更多信息,请参见对接Grafana。两种插件的区别如下表所示。

对比项

Grafana+Elasticsearch兼容接口

Grafana+SLS原生插件

使用的Grafana数据源插件

Elasticsearch数据源插件(Grafana默认包含)

SLS数据源插件(需要手动安装)

查询语法

Elasticsearch DSL语法

SLS索引查询语法、SQL分析语法

操作视频

本视频指导您使用Grafana访问日志服务的Elasticsearch兼容接口。

配置数据源

  1. 登录Grafana控制台。

  2. 在左侧导航栏,选择 Connections > Add new connection

  3. Add new connection页签,找到并单击Elasticsearchimage

  4. 然后再打开的Elasticsearch详情页中,单击Add new data sourceimage

  5. Settings页签中,完成如下配置,然后单击Save&test测试连通性。如显示Data source successfully connected,表示配置正确。如果报错,请参见常见问题和错误排查image

    重要参数配置说明如下表所示,其他参数可使用默认配置。

    配置区域

    参数名称

    说明

    Connection

    URL

    数据访问地址,格式为https://${project}.${sls-endpoint}/es/。其中${project}Project名称,${sls-endpoint}为日志服务Project的访问域名。更多信息,请参见服务入口例如:https://etl-guangzhou.cn-guangzhou.log.aliyuncs.com/es/

    重要

    必须使用HTTPS协议。

    Authentication methods

    Basic authentication

    选择Basic authentication

    User

    阿里云账号AccessKeyID。

    建议使用RAM用户的AccessKey,该RAM用户需具备Logstore的数据查询权限。您可以通过权限助手,配置权限。具体操作,请参见配置权限助手。AccessKey的获取方法,请参见访问密钥

    Password

    阿里云账号AccessKeySecret。

    建议使用RAM用户的AccessKey,该RAM用户需具备Logstore的数据查询权限。您可以通过权限助手,配置权限。具体操作,请参见配置权限助手。AccessKey的获取方法,请参见访问密钥

    Elasticsearch details

    Index name

    Elasticsearch的索引模式名称。该名称的命名规则为${日志服务Project名称}.${Logstore名称}。例如Project名称为etl-guangzhou ,Logstore名称为es_test22,那么此处的名称为etl-guangzhou.es_test22

配置图表示例

创建数据源后,Grafana将可以访问存储在日志服务中的数据。通过ES的插件对接SLSES兼容接口,可以很方便地做图表可视化,而无需写SQL。下面以Nginx访问日志为例介绍具体配置示例。

整体QPS曲线

Lucene Query框中可以填写过滤条件,语法是ES Lucene的语法。image

统计status200的曲线

Lucene Query框中输入status: 200即可查询满足这个条件的曲线。image

统计Top请求的URI

Group By选择Terms,并选择request_uri字段。image

统计RT分位数

Metric选择 Percentiles,并选择upstream_response_time字段, 在Values中可以选择具体的分位数值,比如50,95,99。image

Top请求URI查看RT分位数

Metric选择 Percentiles,并选择upstream_response_time字段,Values设置为99。Group By选择Terms,并选择request_uri字段。

image

查看非200Top请求URI

Lucene Query框中输入NOt status: 200Group By选择Terms,并选择request_uri字段。

image

查看非200Top请求URI以及对应的Method

Lucene Query框中输入NOT status: 200Group By选择Terms,并选择request_uri字段。并增加request_methodGroup By

image