如何使用摄取节点管道添加自定义索引?
Posted
技术标签:
【中文标题】如何使用摄取节点管道添加自定义索引?【英文标题】: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 多个命名空间。请帮助建议这是否可以通过摄取节点管道来完成
【问题讨论】:
【参考方案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 名称以上是关于如何使用摄取节点管道添加自定义索引?的主要内容,如果未能解决你的问题,请参考以下文章
Observability:使用 Elastic Agent 来收集定制的 TCP 日志
是否使用数据流管道(未内置自定义)从谷歌存储到 bigquery 摄取数据(批量)?
在使用 YouTube Live Streaming API 时使用基本摄取或避免重复的自定义摄取