我使用filebeat将日志上传到elasticsearch,我希望在将文档发送到ES之前使用logstash转换文档。我想添加一个名为my.service的字段,它将解析字段log.file. path的值。基本上,我想要的是以下内容:
"log.file.path": "/var/log/myservice.log"
"my.service": "myservice"
字符串
我在logstash上尝试了以下过滤器,但似乎都不起作用:
filter {
if ("" in [log.file.path]){
grok {
match => { "log.file.path" => "%{GREEDYDATA}/(?<my.service>).log"}
}
}
}
filter {
if ("" in [log.file.path]){
grok {
match => { "log.file.path" => "%{GREEDYDATA}/%{GREEDYDATA:my.service}.log"}
}
}
}
型
1条答案
按热度按时间zfycwa2u1#
问题是虚线字段名称,在Logstash中嵌套字段需要用方括号指定,只需这样做:
字符串
当下面的JSON文档进来时(作为一行程序)
型
输出将是
型