如何在Grafana中配置OpenSearch/ElasticSearch SQL插件作为数据源?
将OpenSearch/ElasticSearch SQL插件配置为Grafana数据源
前提说明
你已经在OpenSearch或ElasticSearch中启用了SQL插件,且能通过以下方式执行SQL查询:
POST /_plugins/_sql { "query": "SELECT test_name,sum(run-time) FROM test_metrics GROUP BY test_name" }
方法一:用JSON API数据源直接对接SQL插件接口(推荐)
这是最直接的方式,通过Grafana的JSON API插件调用/_plugins/_sql接口执行SQL:
- 安装JSON API插件:在Grafana的插件市场搜索「JSON API」并完成安装,重启Grafana生效。
- 配置JSON API数据源:
- 进入Grafana「数据源」页面,点击「添加数据源」,选择「JSON API」。
- 在「URL」栏填入你的集群地址(例如
http://your-es-cluster:9200)。 - 根据集群的安全配置,设置对应的认证方式(Basic Auth、API Key等),确保账号有权访问
/_plugins/_sql接口和目标索引。
- 创建面板并编写查询:
- 新建面板,选择刚才配置的JSON API数据源。
- 将查询方法改为
POST,「Path」填写/_plugins/_sql。 - 在「Body」栏填入SQL查询的JSON结构,示例:
{ "query": "SELECT test_name,sum(run-time) FROM test_metrics GROUP BY test_name" } - 解析返回结果:SQL插件返回的结果包含
columns(字段名)和rows(数据行),在JSON API的「Fields」设置中,用JSON Path映射字段到Grafana的维度(比如将rows数组中的字段映射为标签和值),就能生成对应的图表。
方法二:通过官方Elasticsearch数据源间接使用SQL
如果你的集群启用了对应X-Pack SQL(OpenSearch对应内置SQL插件),也可以用Grafana官方的Elasticsearch数据源:
- 配置Elasticsearch数据源:
- 填入集群地址,选择匹配的版本(OpenSearch可选择兼容的ES版本),配置认证信息。
- 执行SQL查询:
- 部分版本的Grafana Elasticsearch数据源支持直接切换到「SQL」模式,输入SQL语句即可执行。
- 如果没有SQL模式,可以通过「Scripted query」调用
/_plugins/_sql接口,或者将SQL转换为DSL查询后使用。
注意事项
- 确保Grafana服务器与OpenSearch/ES集群网络连通,防火墙或安全组开放9200(或自定义)端口。
- 验证账号权限:确保Grafana使用的账号拥有
_plugins/_sql接口的访问权限,以及目标索引的查询权限。 - 字段映射:根据SQL返回的
columns和rows结构,正确配置Grafana的数据解析规则,避免图表无数据或展示异常。
内容的提问来源于stack exchange,提问作者rrlamichhane
相关产品推荐
相关产品推荐

