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