grafana社区版(v9.0+)已原生支持elasticsearch和prometheus数据源,无需enterprise版本即可实现混编监控;enterprise版仅增强多租户权限、跨源告警等高级能力。

Grafana 本身不强制要求 Enterprise 版本才能接入 Elasticsearch 或 Prometheus —— 社区版已原生支持两者,所谓“无缝混编”关键在于数据源协同设计与查询逻辑分层,而非版本限制。
确认基础兼容性
社区版 Grafana(v9.0+)已内置官方 Elasticsearch 和 Prometheus 数据源插件,无需额外安装。Enterprise 版仅在以下场景提供增强能力:
- 多租户权限隔离(如按团队限制可查的 ES 索引或 Prometheus job)
- 高级告警策略(如跨数据源条件联动:ES 日志异常 + Prometheus 指标飙升 → 触发同一告警)
- 长期指标归档与企业级审计日志
日常监控、混合看板、联合分析,社区版完全胜任。
双数据源共存配置要点
在同一 Grafana 实例中同时添加两个数据源,需注意:
-
Elasticsearch 数据源:配置时选择索引模式(如
logs-*或metrics-*),启用 Time field(如@timestamp),确保时间范围同步 -
Prometheus 数据源:填写正确 endpoint(如
http://prometheus:9090),建议开启 HTTP method: POST 以支持长 PromQL 查询 - 两者可共用同一面板的时间范围控件,但需在每个查询编辑器中独立设置数据源
实现“混编”的典型用法
不是把两种数据硬塞进一个图表,而是按语义分工协作:
- 主视图用 Prometheus:展示集群健康度、JVM 内存、分片延迟等结构化指标,适合折线图、状态灯、热力图
- 辅助视图用 Elasticsearch:在相同时间窗口内下钻查看对应时段的错误日志、慢查询原始记录、trace ID 关联详情
-
变量联动:用 Prometheus 查询生成
label_values(elasticsearch_cluster_health_status, cluster)作为变量,再在 Elasticsearch 查询中通过WHERE cluster = "$cluster"动态过滤日志 -
Grafana 13+ 支持 ES|QL 直接嵌入:启用
elasticsearchESQLQuery = true后,可在同一编辑器中写:FROM logs-* | WHERE severity = "ERROR" | STATS count() BY service_name,结果直接渲染为柱状图,与 Prometheus 的count by (job) (up == 0)并排对比
阿里云/托管 ES 的特别适配
若使用阿里云 Elasticsearch 版,可跳过自建 exporter:
- 其自带的 TimeStream 索引 已预聚合监控指标(CPU、GC、分片数等),可直接作为 Prometheus 兼容数据源接入 Grafana
- 只需在 Grafana 中添加 Prometheus 类型数据源,endpoint 填写阿里云提供的
https://es-cn-xxx.prometheus.aliyuncs.com地址 - Elasticsearch 数据源则仍用于原始日志检索,两者物理隔离、逻辑互补










