【问题标题】:How to remove one or more fields in logstash using ruby based on field contents?如何根据字段内容使用 ruby​​ 删除 logstash 中的一个或多个字段?
【发布时间】:2016-03-13 08:01:36
【问题描述】:

我有一个包含 json 数据的日志行,我正在应用 json 过滤器,然后对其进行变异解析。

我需要做的是

遍历每个 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"]
                }       
        }

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

【问题讨论】:

    标签: ruby logstash logstash-grok


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2013-05-21
      • 2015-04-27
      相关资源
      最近更新 更多