Grok Filter не добавляет новые поля | Logstash - PullRequest
0 голосов
/ 12 июля 2020

У нас есть фильтр Grok, указанный ниже, настроенный для нашего журнала. То же самое было развернуто на нашем локальном компьютере, поскольку filebeat работал нормально, но не добавлял новые поля в journalbeat.

filter {

    grok {
      patterns_dir => ["/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.1.2/patterns"]
      match => { "message" => [
        '%{IPV4:client_ip} - - \[%{HTTPDATE:date}\] "%{WORD:method} %{URIPATH:request} %{URIPROTO:protocol}\/[1-9].[0-9]" (%{NUMBER:status}|-) (%{NUMBER:bytes}|-) "(%{URI:url}|-)" %{QUOTEDSTRING:client}'
        ]
        break_on_match => false
        tag_on_failure => ["failed_match"]
      }
    }
}

Мы пытались добавить фильтр mutate для добавления новых полей, используя ниже, но он не загружается значение и сам распечатывает скалярные значения (пример:% {client_ip}).

mutate {
        add_field => {
           "client_ip" => "%{client_ip}"
           "date" => "%{date}"
           "method" => "%{method}"
           "status" => "%{status}"
           "request" => "%{request}"
        }
      }

Журнал, который мы пытаемся сопоставить, выглядит следующим образом.

::ffff:172.65.205.3 - - [09/Jul/2020:11:32:52 +0000] "POST /v1-get-profile HTTP/1.1" 404 71 "https://mycompany.com/customer/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"

Может кто-нибудь дайте мне знать, что именно мы делаем не так. Заранее спасибо.

...