【问题标题】:Logstash Filter, add field from split array, if not emptyLogstash 过滤器,如果不为空,则从拆分数组中添加字段
【发布时间】:2019-05-15 08:17:08
【问题描述】:

我正在对两个字段进行拆分,并将不同的数组元素分配给新字段。但是,当它们不存在时,它最终会将代码分配给该字段,例如“%{variable}”

我假设在将数组元素分配给新字段之前,我可以对数组元素执行 5 个 if 语句来查看它是否存在,但这似乎是一种非常混乱的做法。有没有更好的方法只在填充时分配

split => { "HOSTALIAS" => ", " }
split => { "HOSTGROUP" => "," }

add_field => {
                    "host-group" => "%{[HOSTGROUP][0]}"
                    "ci_alias" => "%{[HOSTALIAS][0]}"
                    "blueprint-id" => "%{[HOSTALIAS][1]}"
                    "instance-id" => "%{[HOSTALIAS][2]}"
                    "vm-location" => "%{[HOSTALIAS][3]}"
          }

【问题讨论】:

    标签: logstash logstash-filter


    【解决方案1】:

    您可以使用 grok 过滤器。在这里我们丢弃失败的消息,但我们可以用不同的方式处理它。

    filter {
        grok {
            match => [ "HOSTALIAS", "%{WORD:ci_alias},%{WORD:blueprint-id},%{WORD:instance-id},%{WORD:vm-location}"] 
        }
        if "_grokparsefailure" in [tags] {
            drop { }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 2016-07-25
      • 1970-01-01
      • 2018-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多