如何使用 logstash 解析包含不同 unicode 字符串的字段
how to parse a field containing different unicode string with logstash
我使用了 logstash jdbc 语句
"select utl_raw.cast_to_varchar2(dbms_lob.substr(field,length(field))) from table;"
获取 blob 字段。 logstash 中的输出带有 unicode 字符,例如“\v\u0004\u0000\u0000\u0000\u0001\u0005\u0001\u0004\u0019\u0000c\u0000o\u0000m\u0000.\u0000w\u0000m\u0000.\u0000d\u0000a\u0000t\u0000a\u0000.\u0000I\u0000S\u0000M\u0000e\u0000m”'
哪个实际值为 "com.wm.data.ISMem"
我需要替换所有 unicode 字符并解析我的数据。
任何人都建议如何解决这个问题以及可以在此处使用哪个 logstash 过滤器来解析 SQL 输出
您可以使用 mutate
过滤器中的 gsub
。
mutate {
gsub ["field-name","\v\u0004\u0001\u0005\u0001\u0004\u0019",""]
gsub ["field=name","\u0000",""]
}
第一个将删除\v\u0004\u0001\u0005\u0001\u0004\u0019
,这似乎是某种header。
第二个将从您的字符串中删除剩余的 \u0000
。
你可以使用
改变它
mutate {
gsub => [
"message", "[\]u0000", "",
"message", "[\]v[\]u0004[\]u0001[\]u0005[\]u0001[\]u0004[\]u0019", ""]
}
我希望有一种方法可以修复 ruby 过滤器中的编码,但我不知道它是什么。
我使用了 logstash jdbc 语句 "select utl_raw.cast_to_varchar2(dbms_lob.substr(field,length(field))) from table;" 获取 blob 字段。 logstash 中的输出带有 unicode 字符,例如“\v\u0004\u0000\u0000\u0000\u0001\u0005\u0001\u0004\u0019\u0000c\u0000o\u0000m\u0000.\u0000w\u0000m\u0000.\u0000d\u0000a\u0000t\u0000a\u0000.\u0000I\u0000S\u0000M\u0000e\u0000m”' 哪个实际值为 "com.wm.data.ISMem" 我需要替换所有 unicode 字符并解析我的数据。 任何人都建议如何解决这个问题以及可以在此处使用哪个 logstash 过滤器来解析 SQL 输出
您可以使用 mutate
过滤器中的 gsub
。
mutate {
gsub ["field-name","\v\u0004\u0001\u0005\u0001\u0004\u0019",""]
gsub ["field=name","\u0000",""]
}
第一个将删除\v\u0004\u0001\u0005\u0001\u0004\u0019
,这似乎是某种header。
第二个将从您的字符串中删除剩余的 \u0000
。
你可以使用
改变它 mutate {
gsub => [
"message", "[\]u0000", "",
"message", "[\]v[\]u0004[\]u0001[\]u0005[\]u0001[\]u0004[\]u0019", ""]
}
我希望有一种方法可以修复 ruby 过滤器中的编码,但我不知道它是什么。