Logstash的KV模式自动将数字转换成整数

来源:互联网 发布:安卓的内存优化 编辑:程序博客网 时间:2024/05/29 18:43

logstash的kv模式分割后的全部字符在Elasticsearch里面的数据类型全都是string,这样聚合搜索很不方便,于是利用ruby插件实现一下自动转整数的kv模式

## logstash 5.x,由于logstash5.x不支持直接修改值,直接把值copy出来修改然后重新写进去filter {    ruby {        code => "            fieldArray = event.get('[message][message]').split(/\u001F/);            kv = {};            for field in fieldArray                name = field.split('=')[0];                value = field.split('=')[1];                if value =~ /\A\d+\Z/                    kv[name]=value.to_i                else                    kv[name]=value                end            end            event.set('[monitor]',kv);        "    remove_field => ["[message][message]"]    }}
### logstash 2.xfilter{    ruby {        code => "            fieldArray = event['message'].split(/\u001F/);            for field in fieldArray                name = field.split('=')[0];                value = field.split('=')[1];                if value =~ /\A\-?\d+\Z/                    event[name] = value.to_i                else                    event[name] = value                end            end        "    }}
阅读全文
0 0