如果字段的键长于logstash中的x个字符,则删除字段?

2mbi3lxu  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(333)

我有一个 logstash 管道在很大程度上,将数据充分解析为json,以便 elasticsearch ; 然而。。。有时它不能很好地解析字段,并找到非常奇怪的键和值,大多数情况下,这些键非常长,例如: aaaakgaaaaiaaaaaaaaaabiofy1mb... .
我希望能够删除这些领域的基础上多久的关键是在数据库中 kv . 假设任何超过30个字符的字段都被移除。虽然我可以提高 logstash 在未来解析这些问题将不会持续,现在我想有这样的东西作为最后缝合健全检查。

t9aqgxwy

t9aqgxwy1#

使用以下两个步骤尝试此筛选器:
前缀kv字段,以便能够识别它们(此处可选)
在此前缀字段上循环以应用条件(此处限制包括30个前缀)

filter {
      kv { 
        #Step 1
        #prefix=>"kv_"
      }
      ruby {
        code => "
          hash = event.to_hash
          hash.each do |key, value|
          # Step 2
          #if(key.to_s.start_with?('kv_'))
            if(key.size>30)
              event.cancel
            end
          #end
          end
         "
       }
     }

相关问题