【问题标题】:How to add custom index using ingest node pipeline?如何使用摄取节点管道添加自定义索引?
【发布时间】:2022-01-13 02:01:01
【问题描述】:

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

我处于一种情况,我应该决定哪种方法是进行自定义索引的更好方法。我可以在 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】:

    是的,您可以通过摄取管道集处理器来实现这一点。摄取管道支持accessing of metadata fields,您可以使用 _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'"
            }
          }
        ]
    

    【讨论】:

    • 当我在 metricbeat.yml 中实现这一点时,我得到的索引为 .ds-metricbeat-dev 知道它为什么要创建数据流吗?
    • @sidharthvijayakumar 我不确定,但它可能会发生,因为您的索引名称以 metricbeat- 开头,这与现有的 ILM 和索引模板匹配。请为此提出单独的问题。
    • @sidharthvijayakumar 如果对您有帮助,请接受我的回答。
    • 这不是我想要的,但仍然有效,但它没有创建别名和东西,所以我无法实现 ilm
    • @sidharthvijayakumar 您是否尝试使用 metricbeat- 索引名称或其他自定义 inex 名称
    猜你喜欢
    • 2022-01-16
    • 2022-01-26
    • 2022-01-20
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    相关资源
    最近更新 更多