elasticsearch 如何从logstash中filebeat提供的源值获取文件名?,elasticsearch,logstash,elastic-stack,filebeat,elasticsearch,Logstash,Elastic Stack,Filebeat" /> elasticsearch 如何从logstash中filebeat提供的源值获取文件名?,elasticsearch,logstash,elastic-stack,filebeat,elasticsearch,Logstash,Elastic Stack,Filebeat" />

elasticsearch 如何从logstash中filebeat提供的源值获取文件名?

elasticsearch 如何从logstash中filebeat提供的源值获取文件名?,elasticsearch,logstash,elastic-stack,filebeat,elasticsearch,Logstash,Elastic Stack,Filebeat,我想从filebeat提供的源值获取文件名 output { if [type] == "wxnumber" { elasticsearch { hosts => "localhost:9200" sniffing => false manage_template => false index => "%{[source]}" document_type => "%{[@me

我想从filebeat提供的源值获取文件名

output {
  if [type] == "wxnumber" {
    elasticsearch {
        hosts => "localhost:9200"
        sniffing => false
        manage_template => false
        index => "%{[source]}"
        document_type => "%{[@metadata][type]}"
    }
  }
}

%{[source]}
通常类似于
/aaa/bbb/ccc.log
。如何将索引设置为
ccc.log

也许您可以使用
mutate
来替换为日志文件的命名方式:

if [%{[source]}] =~ /aaa/bbb/ccc.log {
  mutate {
     replace => ["%{[source]}]", "ccc.log"]
  }
}

这可能会有帮助

从上面的配置中,您得到了什么结果?@Kulasangar,谢谢您的回复。%{[source]}的结果类似于/aaa/bbb/ccc.log。我只想得到这个变量的ccc.log。我已经更新了答案!检查它是否有效。非常感谢。但我不知道文件名。可能是ddd.log、eee.log、fff.log等等。如果您使用正则表达式来修剪路径并只获得前面提到的特定值,会怎么样