You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Grafana中关联Elasticsearch与PostgreSQL数据

实现Elasticsearch日志与PostgreSQL解决方案的关联展示

一、配置Grafana数据源

  • 添加Elasticsearch数据源:进入Grafana的「Configuration」→「Data sources」,选择Elasticsearch类型,填入ES集群地址,设置匹配NIFI写入日志的索引模式(如logs-*),指定时间字段为timestamp,测试连接确认可用。
  • 添加PostgreSQL数据源:同样在数据源页面选择PostgreSQL类型,填入数据库主机、端口、库名、用户名及密码,测试连接确保能正常访问目标数据库。

二、编写基础查询并设置别名

  1. Elasticsearch日志查询:
    在新建的表格面板中添加第一个查询,选择Elasticsearch数据源,用DSL语句提取所需字段:

    {
      "query": { "match_all": {} },
      "_source": ["timestamp", "logMessage"]
    }
    

    给该查询结果设置别名(如logs),方便后续关联操作。

  2. PostgreSQL解决方案查询:
    添加第二个查询,选择PostgreSQL数据源,编写SQL语句取出日志对应的解决方案(假设解决方案表名为log_solutions,解决方案字段为solution):

    SELECT logMessage, solution FROM log_solutions;
    

    给该查询结果设置别名(如solutions)。

三、通过Transform合并关联数据

在表格面板的「Transform」选项中,添加「Join by field」转换:

  • 选择左侧数据源为logs,右侧数据源为solutions;
  • 关联字段选择两边的logMessage(需确保该字段内容完全匹配,包括大小写、特殊字符,否则无法成功关联);
  • 在「Fields to keep」中勾选需要展示的字段:timestamp、logMessage、solution;
  • 可在「Rename fields」中为字段设置更友好的名称,比如将timestamp改为「日志时间」,solution改为「解决方案」。

四、优化展示与性能

  • 在表格的「Options」中设置列对齐方式、默认排序规则(比如按timestamp倒序排列);
  • 若日志量较大,可在Elasticsearch查询中添加时间范围过滤或分页条件,避免返回过多数据影响面板加载速度;
  • 如果logMessage存在格式不一致的情况,建议在NIFI收集日志阶段做标准化处理(如统一大小写、去除冗余字符);若无法提前处理,可在PostgreSQL查询中使用ILIKE做模糊匹配,但此方式会降低查询性能,仅适合数据量较小的场景。

内容的提问来源于stack exchange,提问作者Fedi Mannoubi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 14:31:03