首页/云/可观测性速查/Elasticsearch 数据源接入
Grafana 与看板53 条

Elasticsearch 数据源接入

Elasticsearch 数据源按索引模式与时间字段取数:查询支持 Lucene 语法,指标可用聚合下拉(Date Histogram、Terms 等)拼装。

可观测性速查云更新于 2026-10-13

Elasticsearch 数据源是什么

Grafana 的 Elasticsearch 数据源把 ES 当成查询后端:先配置地址、索引模式与时间字段,再用 Lucene 或 KQL 写检索条件,指标维度靠聚合下拉(Date Histogram、Terms、Count、分位数等)拼装。适合已经有 ELK 栈、又希望把日志与聚合结果和指标看板放在一起的团队,相比在 Kibana 与 Grafana 之间切换,优势在于同屏对照与统一告警。

基本信息

数据源配置URL、Index name(如 filebeat-*)、Time field name(如 @timestamp)
查询语法Lucene 或 KQL
常用聚合Date Histogram、Terms、Count、Percentiles
适用版本Grafana 8+ 搭配 ES 7.x / 8.x
权限要求ES 侧账号需要目标索引的读权限

典型使用场景

  • 日志量趋势:按 Date Histogram 统计单位时间日志条数,与指标同屏对照
  • 错误分布:Terms 聚合按 service 或 status 分组,找出量最大的错误类型
  • 慢请求定位:筛出耗时字段超阈值的文档,按时间排布看集中出现的时段
  • 审计检索:按用户、IP、操作类型组合条件做检索式排查
  • 分层统计:先按服务分组再算分位数,替代导出数据后手工计算

配置与查询示例

配置与查询示例
# 数据源配置
URL: http://es:9200
Index name: filebeat-*
Time field name: @timestamp

# 查询语法(Lucene)
status:500 AND service:"api" AND NOT env:"test"

# 指标聚合:Date Histogram(@timestamp, 1m) + Count,Terms(service.keyword) 分组
# 字段名先在 Kibana Discover 或 _mapping 里确认,再搬到 Grafana 面板

配置项与错误表现

配置项填错时的表现核对方法
Index name图表空白或数据混杂确认存在同名索引模式
Time field无数据或时间错位确认该字段是日期类型
查询语法查询报错或命中为零先在 Kibana Discover 验证语句
聚合字段聚合直接报错文本字段改用 .keyword 子字段
字段名与索引先在对端工具里验证再搬到 Grafana,比在面板上反复试错快得多,也让看板配置更容易被他人复用。

接入步骤

  • 先确认 ES 地址、账号与索引可读,必要时用 curl 直接查一次 _search
  • 填写 Index name 与 Time field name,两个字段都填错时表现都是无数据
  • 在 Kibana Discover 或 Explore 里把检索语句调通,确认命中数量合理
  • 再加聚合:Date Histogram 定时间粒度,Terms 定分组维度,逐步逼近目标图
  • 确认无误后固化成看板,并把字段名与索引写进看板说明供他人复用
同一份日志用 Kibana 与 Grafana 各做一套图之前,先统一时间字段与字段命名,否则两边统计口径会长期对不上。

易错点

  • 时间字段名不一致(@timestamp 与自定义字段)会直接表现为无数据,先核对索引映射
  • 索引模式写得过宽会扫到无关索引,加载慢且统计口径混杂
  • 对 text 类型字段做 Terms 聚合会报 fielddata 相关错误,应改用 .keyword 子字段
  • 把 Grafana 当通用 ES 查询客户端,复杂嵌套聚合与脚本聚合的体验不如 Kibana,不必硬凑

数据来源与参考

  • Grafana 官方文档 · Elasticsearch data source
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌