logstash-将单个事件输出到多行输出文件中

logstash-将单个事件输出到多行输出文件中,logstash,Logstash,我有一个带有select语句的jdbc输入。result集中的每一行有3列。c1,c2,c3。发出的事件具有以下结构: {"c1":"v1", "c2":"v2", "c3":"v3", "file_name":"tmp.csv"} 我希望以以下方式输出文件中的值: output file: v1 v2 v3 这是输出配置: file { path => "/tmp/%{file_name}" codec => pl

我有一个带有select语句的jdbc输入。result集中的每一行有3列。c1,c2,c3。发出的事件具有以下结构:

{"c1":"v1", "c2":"v2", "c3":"v3", "file_name":"tmp.csv"}
我希望以以下方式输出文件中的值:

output file:
v1
v2
v3
这是输出配置:

file {
                path => "/tmp/%{file_name}"
                codec => plain { format => "%{c1}\n%{c2}\n%{c3}"  }
                write_behavior => "overwrite"
                flush_interval => 0
        }
但产生的是

outputfile:
v1\nv2\nv3
普通的编解码器插件不是我需要的吗?对于输出文件插件,还有其他的编解码器插件可以使用吗?还是我唯一的选择就是写我自己的插件?
谢谢

您正在寻找的是line codec插件:

派对有点晚了,但这可能对其他人有所帮助。虽然它看起来很时髦,但您应该能够通过使用line codec在格式字符串中简单地按Enter键来逃脱


这不是最漂亮的方法,但它是有效的。不确定是否有更好的方法。

您能指出您使用的配置吗?我试着用线路编解码器来做,但做不到。你得到了什么输出?我得到了与问题中相同的结果:v1\nv2\nv3。我无法添加换行符。没有尝试,但您是否在windows上?可能尝试\r\n作为分隔符?我在Windows上,确实尝试了\r\n,结果相同。
file {
    path => "/tmp/%{file_name}"
    codec => line {
        format => "%{c1}
%{c2}
%{c3}"
    }
    write_behavior => "overwrite"
    flush_interval => 0
}