如何使用logstash解析包含不同unicode字符串的字段

如何使用logstash解析包含不同unicode字符串的字段,unicode,logstash,gsub,Unicode,Logstash,Gsub,我使用了logstash jdbc语句 从表中选择utl_raw.cast_to_varchar2(dbms_lob.substr(字段,长度(字段)) 获取blob字段。logstash中的输出使用unicode字符,如“\v\u0004\u0000\u0000\u0000\u0001\u0005\u0001\u0004\u0019\u0000c\u0000o\u0000m\u0000。\u0000w\u0000m\u0000。\u0000d\u0000a\u0000t\u0000a\u000

我使用了logstash jdbc语句 从表中选择utl_raw.cast_to_varchar2(dbms_lob.substr(字段,长度(字段)) 获取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字符并解析数据。
任何人都可以建议如何重新使用它,以及在这里可以使用哪个日志存储筛选器来解析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
,这似乎是某种头


第二个将从字符串中删除剩余的
\u0000

您可以从
mutate
过滤器中使用
gsub

mutate {
    gsub ["field-name","\v\u0004\u0001\u0005\u0001\u0004\u0019",""]
    gsub ["field=name","\u0000",""]
}
第一个将删除
\v\u0004\u0001\u0005\u0001\u0004\u0019
,这似乎是某种头


第二个将从字符串中删除剩余的
\u0000

您可以使用

    mutate {
        gsub => [
            "message", "[\\]u0000", "",
            "message", "[\\]v[\\]u0004[\\]u0001[\\]u0005[\\]u0001[\\]u0004[\\]u0019", ""]
    }

我希望有一种方法可以修复ruby过滤器中的编码,但我不知道它是什么。

您可以使用

    mutate {
        gsub => [
            "message", "[\\]u0000", "",
            "message", "[\\]v[\\]u0004[\\]u0001[\\]u0005[\\]u0001[\\]u0004[\\]u0019", ""]
    }

我希望有一种方法可以修复ruby过滤器中的编码,但我不知道它是什么。

你能为不同的日志建议任何正则表达式模式吗?unicode模式改变不同的日志扫描你为不同的日志建议任何正则表达式模式,unicode模式改变吗