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 各做一套图之前,先统一时间字段与字段命名,否则两边统计口径会长期对不上。