如何使用基于字段内容的ruby删除logstash中的一个或多个字段?

时间:2015-12-08 11:54:21

标签: ruby logstash logstash-grok

我有一个包含json数据的日志行,我正在应用json过滤器然后mutate来解析它。

我需要做的是

遍历每个parsejson字段 如果字段包含的值是“%{[parsedjson]”+ fieldname本身将其删除。

例如(用虚拟数据替换实际数据)

如果字段[studentName]包含“"%{[parsedjson][studentName]}",则表示需要删除此字段。

这就是我现在正在做的事情,非常糟糕

json{
            source=>"jsondata"
            target=>"parsedjson"

        }       

mutate{ 


.... #adding removing fields, not important

#manually removing all fields
    if [studentName]=="%{[parsedjson][studentName]}"
            {
                mutate{     
                    remove_field=>["studentName"]
            }       
        }

    if [studentAge]=="%{[parsedjson][studentAge]}"
                {
                    mutate{     
                        remove_field=>["studentAge"]
                }       
        }

我的红宝石技能有很多不足之处,非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:0)

这个answer显示了如何循环遍历ruby中的所有字段以及如何删除字段。