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

是否可通过API调用动态创建Kibana可视化并嵌入自有网站?

结论

Kibana完全支持你描述的所有需求,既可以通过动态参数嵌入的方式快速实现前端交互切换,也可以全量通过API完成资源创建、嵌入代码生成的全流程,完全不需要手动在Kibana网页端逐一点击操作。


方案1:轻量动态嵌入(开发成本最低,适配全部业务场景)

这个方案不需要反复调用API创建Kibana资源,只需要做一次基础配置,后续所有筛选、时间范围、图表类型切换都可以通过修改嵌入参数实时生效,是这类嵌入场景最常用的实现方式。
操作流程如下:

  • 提前在Kibana中创建1个基础Lens可视化:选择存储温度数据的ES索引,将timestamp设为时间字段,temperature绑定为数值指标,location设为可用拆分维度,保存这个可视化。点击Share拿到基础iFrame代码,基础结构如下:
<iframe 
  src="http://你的Kibana服务地址/app/lens#/edit/[可视化资源ID]?embed=true&_g=()&_a=()"
  height="600"
  width="800"
  frameborder="0"
></iframe>

注意必须携带embed=true参数,否则嵌入内容会带上Kibana的侧边导航、顶部菜单,不是纯图表展示效果。

  • 自有网站前端根据用户操作,动态修改iFrame src里的两个核心参数即可实现所有需求:
    • _g:全局配置参数,控制全局时间范围、全局筛选规则,用Rison格式编码
    • _a:可视化配置参数,控制图表类型、维度绑定、单图表筛选规则,同样用Rison格式编码
      对应你列的三个场景的参数配置逻辑:
    1. 筛选location为A的柱状图展示:在_a中设置visualizationType: 'bar',添加筛选规则query: {language: 'kuery', query: 'location:A'},X轴绑定timestamp字段,Y轴绑定temperature字段即可
    2. A、B两地近2个月折线图展示:在_g中设置时间范围time: {from: 'now-2M', to: 'now'},在_a中设置visualizationType: 'line',筛选规则改为location:A or location:B,增加按location字段拆分系列的配置即可
    3. 多图表类型切换:只需要修改_a中的visualizationType字段值,传入pie(饼图)、area(面积图)、heatmap(热力图)对应取值,Lens会自动适配维度渲染,不需要额外创建其他可视化资源。
  • 权限处理:如果Kibana开启了安全认证,不要直接把认证信息暴露在前端,可以在自有服务端配置代理转发,或者给Kibana配置对应温度索引的匿名只读权限,限制访问范围避免越权。

方案2:全API无UI操作流程

如果连初始的基础可视化都不想通过Kibana前端创建,全流程通过接口调用实现,按以下步骤操作即可:

  1. 调用Kibana Saved Objects接口创建索引模式:请求地址为POST /api/saved_objects/index-pattern,请求体中指定温度数据的ES索引名、时间字段为timestamp,接口会返回生成的索引模式ID
  2. 调用Lens可视化创建接口:请求地址为POST /api/saved_objects/lens,请求体中关联上一步拿到的索引模式ID,填入默认的图表类型、维度配置、筛选规则,接口会返回生成的可视化资源ID
  3. 按照方案1的规则拼接iFrame嵌入地址即可,后续动态切换筛选、图表类型的逻辑和方案1完全一致,不需要重复调用创建接口。

补充说明
  • 所有_g、_a参数都是Rison编码格式,不要直接拼接JSON字符串,开发时可以用对应编程语言的Rison编码库生成参数,避免格式错误导致渲染失败
  • 如果觉得iFrame的交互灵活度不够,也可以用Kibana提供的前端嵌入SDK,直接把图表挂载到自有页面的DOM节点上,支持和自有站点的状态、路由做更深的联动,参数规则和iFrame方式完全一致。

内容的提问来源于stack exchange,提问作者James Fu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:34:03