是否可以使用摄取节点管道创建条件索引?我觉得这可以由脚本处理器来完成,但有人可以告诉这是否可能吗?
我面临的情况是,我应该决定哪种方法是进行自定义索引的更好方法。我可以在 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 多个命名空间。请帮助建议这是否可以通过摄取节点管道来完成
是的,您可以通过摄取管道集处理器来实现这一点。摄取管道支持访问元数据字段,您可以使用 _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'"
}
}
]