Logstash > 跳过 grokked 匹配项

Logstash > Skip grokked matches

这是 apache 的 logstash 配置 access_log:

input {
  file {
    path => "/var/log/http.log"
  }
}
filter {
  grok {
    match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" }
  }
}

我想收集除 %{WORD:method}

之外的所有字段

如何让字段 skipped/ignored 从 beeing 转移到 ElasticSearch?

您可以通过删除出现在 WORD 之后的单词 "method" 来完成此操作。所以你的神交过滤器看起来像:

 match => { "message" => "%{IP:client} %{WORD} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" }
  }

冒号后面的词是变量名,其中存储和传递IP、WORD、NUMBER等类型。

你应该在你的 grok 过滤器上使用 Mutate 块。

plugins-filters-mutate