logstash 解码 %uxxxx

想通过logstash从cookie中获取username做关联分析。

然而发现提取出来的username为%u6E38%u5BA2(游客)
尝试使用urldecode发现不能解码。
例如配置文件如下:

 input {
    stdin {
    }
}
filter{
    urldecode {
        field => "message"
    }
}
output {
    stdout {
        codec => rubydebug
    }
}

测试结果:

可以使用ruby解码。

 ruby {
     code => "
         # urldecode non-standard %uXXXX type of string
         ['cs_uri_query', 'cs_cookie', 'cs_referer'].each { |field|
             if event[field] and event[field].include? '%u'
                 event[field] = event[field].gsub(/%u([0-9A-F]{4})/i){$1.hex.chr(Encoding::UTF_8)}.strip
             end
         }
     "
 }

然后看下解析结果

参考文章:
https://discuss.elastic.co/t/how-to-urldecode-uxxxx-type-of-strings/27718/3