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

Metricbeat发送数据到Elastic Cloud时新增字段实现Kibana集群筛选问询

实现方案

方案1:Metricbeat配置层面注入集群唯一标识(最推荐)

该方案改造成本最低,后续维护也最简单,适配绝大多数场景:

  • 修改Metricbeat的DaemonSet配置,在fields配置项中添加自定义的集群标识字段,参考配置如下:
    metricbeat.config:
      fields:
        cluster_name: "生产集群-01" # 每个集群部署时替换为对应集群的唯一名称
      fields_under_root: true # 可选配置,开启后字段会放到文档根层级,无需加fields前缀,筛选更方便
    
  • 每个集群部署Metricbeat时,将上述配置里的cluster_name值替换为对应集群的唯一标识即可,其余采集配置无需调整,后续所有采集到的日志、指标都会自动携带该字段写入Elasticsearch索引。
  • Kibana侧直接选cluster_name字段作为下拉选择框的数据源,就能实现切换集群筛选对应数据,原有看板的所有可视化组件无需修改,全局筛选会自动生效。

方案2:Ingest Pipeline侧注入字段(适合不方便修改Metricbeat配置的场景)

如果已经大规模部署了Metricbeat不方便逐集群改配置,可以通过Elasticsearch的Ingest Pipeline在数据写入时自动打集群标识:

  • 在Elasticsearch中创建Ingest Pipeline,通过set处理器结合判断规则给不同集群的文档添加标识,示例配置如下:
    {
      "processors": [
        {
          "set": {
            "field": "cluster_name",
            "value": "生产集群-01",
            "if": "ctx.host?.ip != null && ctx.host.ip.startsWith('192.168.1.')"
          }
        },
        {
          "set": {
            "field": "cluster_name",
            "value": "测试集群-01",
            "if": "ctx.host?.ip != null && ctx.host.ip.startsWith('192.168.2.')"
          }
        }
      ]
    }
    
    可以根据实际场景调整判断规则,比如用agent.hostname前缀、kubernetes.node.name规则来区分集群。
  • 在Metricbeat的输出配置中指定使用该Pipeline,或者直接将Pipeline配置到对应索引模板的默认Pipeline上,所有写入目标索引的文档都会自动被处理添加字段。
  • Kibana侧的配置和方案1完全一致,绑定cluster_name字段作为下拉筛选源即可。

注意事项

  • 如果没有开启fields_under_root,自定义字段的完整路径是fields.cluster_name,Kibana配置筛选时要选对应层级的字段。
  • 建议提前在索引模板中把cluster_name字段配置为keyword类型,避免text类型的分词问题,确保下拉选项可以正常获取所有唯一集群值。

内容的提问来源于stack exchange,提问作者sidharth vijayakumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:27:03