Logstash kv滤波器问题,其值带有逗号

Logstash kv滤波器问题,其值带有逗号,logstash,logstash-configuration,Logstash,Logstash Configuration,我的千伏滤波器的磁场分裂如下所示- 字段_split=>“,” 字段_拆分基于逗号后跟空格。但我的一个值是json字符串。logstash的输出似乎会在遇到第一个逗号后忽略该值。 示例-日志的mdc字段类似于: abc=abcvalue请求={“key1”:“value1”,“key2”:“value2”} 它将其解析为(输出指向elasticsearch): “abc”:“abc价值” 请求“{”键1:“值1” 如何使请求字段如下所示? “请求”:“{”key1:“value1”,“key2:

我的千伏滤波器的磁场分裂如下所示-

字段_split=>“,”

字段_拆分基于逗号后跟空格。但我的一个值是json字符串。logstash的输出似乎会在遇到第一个逗号后忽略该值。 示例-日志的mdc字段类似于: abc=abcvalue请求={“key1”:“value1”,“key2”:“value2”}

它将其解析为(输出指向elasticsearch): “abc”:“abc价值” 请求“{”键1:“值1”

如何使请求字段如下所示?
“请求”:“{”key1:“value1”,“key2:“value2”}”

如果您确实有json,您可以匹配json并使用json过滤器解析它

例如:

filter {
  grok {
     match => ["request=(?<request_json>{[^}]+})"] // match from { to first } and put in request_json
  }
  json {
     source => "request_json"
     target => "request"
     remove_field => ["request_json"]
  }
}
过滤器{
格罗克{
match=>[“请求=(?{[^}]+})]//从{到第一个}匹配并放入请求中
}
json{
source=>“请求\u json”
目标=>“请求”
删除\u字段=>[“请求\u json”]
}
}

添加更多信息-如果日志行如下--{“key”:“value”},则该值以嵌套格式存储在ES中。但是,如果日志行看起来像{\“key\”:\“value\”}——它将存储为字符串。。json字符串。