如何使用摄取节点管道添加自定义索引?

问题描述 投票:0回答:1

是否可以使用摄取节点管道创建条件索引?我觉得这可以由脚本处理器来完成,但有人可以告诉这是否可能吗?

我面临的情况是,我应该决定哪种方法是进行自定义索引的更好方法。我可以在 metricbeat.yml /filebeat.yml 文件中提及条件来完成此操作。但这是进行自定义索引的最佳方法吗?我的弹性堆栈中没有logstash

output.elasticsearch:
          indices:
            - index: "metricbeat-dev-%{[agent.version]}-%{+yyyy.MM.dd}"
              when.equals:
                kubernetes.namespace: "dev"

这就是我现在在 metric/filebeat 中实现自定义索引的方式。我的 Kubernetes 集群中有大约 20 多个命名空间。请帮助建议这是否可以通过摄取节点管道来完成

elasticsearch elastic-stack elk
1个回答
2
投票

是的,您可以通过摄取管道集处理器来实现这一点。摄取管道支持访问元数据字段,您可以使用 _index 字段名称访问/更新索引名称。

下面是示例摄取管道,当命名空间为 dev 时,它将更新索引名称:

[
  {
    "set": {
      "field": "_index",
      "value": "metricbeat-dev",
      "if": "ctx.kubernetes?.namespace== 'dev'"
    }
  }
]

更新 1:将代理版本附加到索引名称。我认为代理版本字段名称为

agent.version

[
      {
        "set": {
          "field": "_index",
          "value": "metricbeat-dev-{{agent.version}}",
          "if": "ctx.kubernetes?.namespace== 'dev'"
        }
      }
    ]
© www.soinside.com 2019 - 2024. All rights reserved.