【问题标题】:Trim field value, or remove part of the value修剪字段值,或删除部分值
【发布时间】:2015-05-14 15:42:31
【问题描述】:

我正在尝试调整路径名称,以便它不再在末尾附加时间戳。我输入了许多不同的日志,因此为每个可能的日志编写条件过滤器是不切实际的。如果可能的话,我只想修剪该值的最后九个字符。

例如,"random.log-20140827" 将变为 "random.log"

【问题讨论】:

    标签: logstash trim logstash-grok


    【解决方案1】:
    mutate {
        gsub => [
            "path", "-\d{8}$", ""
        ]
    }
    

    【讨论】:

      【解决方案2】:

      所以如果你知道它总是随机的.log-something --

      if [path] =~ /random.log/ {
        mutate {
           replace => ["path", "random.log"]
        }
      }
      

      如果你想“修复”任何有日期的东西:

      if [path] =~ /-\d\d\d\d\d\d\d\d/ {
         grok {
            match => [ "path", "^(?<pathPrefix>[^-]+)-" ]
         }
         mutate {
            replace => ["path", "%{pathPrefix}"]
            remove_field => "pathPrefix"
         }
      }
      

      在这两个中,第一个计算密集度较低。

      我还没有测试过这些,但它们应该可以工作。

      【讨论】:

      • 第二个是我需要的。非常感谢 Alcanzar。
      • 在正则表达式方面,像 /-\d+$/ 或 /-\d{8}$/ 怎么样?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-10
      • 2012-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多