需要Logstash KV过滤器帮助

需要Logstash KV过滤器帮助,logstash,Logstash,我正在尝试为以下日志条目编写日志存储配置 102.89.98.123,-,"[04/Jun/2018:12:36:44 -0400]",?q= (AggrDept:John%20OR%20AggrBeept:Smith)&fq=EmployeeNumber: (12345)&fq=PersonIDCd:M&fq=PersonStatusCd: (1%20OR%203)&AppCode=1234&wt=json&indent=true&

我正在尝试为以下日志条目编写日志存储配置

102.89.98.123,-,"[04/Jun/2018:12:36:44 -0400]",?q= 
(AggrDept:John%20OR%20AggrBeept:Smith)&fq=EmployeeNumber: 
(12345)&fq=PersonIDCd:M&fq=PersonStatusCd: 
(1%20OR%203)&AppCode=1234&wt=json&indent=true&rows=2
我已经成功地将所有参数提取到它们自己的字段中。我提取了

?q=(AggrDept:John%20OR%20AggrBeept:Smith)&fq=EmployeeNumber: 
(12345)&fq=PersonIDCd:M&fq=PersonStatusCd: 
(1%20OR%203)&AppCode=1234&wt=json&indent=true&rows=2
在它自己的名为“键”的字段中

我想要以下输出

    AggrDept:John
    AggrBeept:Smith
    EmployeeNumber:12345
    PersonIDCd:M
    PersonStatusCd:[1,2,3]
    AppCode:1234
    wt:json
    indent:true
    rows:2
我用了KV滤波器

`kv{
    source => "keys"
    field_split => "&"
    value_split => ":"         
}`
然而,我并没有得到预期的结果。任何帮助都将不胜感激


谢谢

您的日志是否也包含换行符?您必须将密钥字段分为两部分,因为
值\u split=>:“
不适用于
AppCode=1234&wt=json&indent=true&rows=2
/。或者使用过滤器mutate/gsub 1)删除
fq=
2)将
=
替换为
,以便可以对所有值使用相同的值分割。Sufiyan:提供的行I是日志文件中的一个实例。这些实例由换行符分隔。谢谢你的回复。我遵循了你推荐的方法,但仍然无法使其发挥作用。