Не удается удалить некоторые поля в logstash.conf

#logstash #elastic-stack #logstash-grok

#logstash #эластичный стек #logstash-grok

Вопрос:

Я хочу удалить otherString поле. Я пробовал, но безрезультатно.

 input {
  tcp {
    port => "5000"
  }
}
filter {
    grok {
        match => {"message" => "{"serviceName":"%{DATA:indexName}","%{DATA:otherString"}}"}
    }
    json {
      source => "message"
    }
    mutate {
      remove_field => ["message", "otherString"]
      add_field => { "[@metadata][index_name]" => "%{indexName}" }
    }
}
output {
  elasticsearch {
     hosts => ["localhost:9200"]
     index => "%{[@metadata][index_name]}"
  }
  stdout { codec => rubydebug }
}
  

ВЫВОД:

 {
         "@timestamp" => 2019-03-26T12:43:45.628Z,
              "level" => "info",
             "userId" => "bbs234isad2i3h4isand",
          "indexName" => "bff_web",
      "otherString\" => "datetime":"2019-02-02 18:13:45:311","userId":"bbs234isad2i3h4isand","apiName":"/v1/admin/deposit/purpose","apiResponseTime":3692,"accessedTables":["-"],"userIP":"127.0.0.1","reqParam":{",
    "apiResponseTime" => 3692,
          "reqMethod" => "POST",
               "port" => 565656,
        "serviceName" => "bff_web",
            "apiName" => "/v1/admin/deposit/purpose",
           "@version" => "1",
             "userIP" => "127.0.0.1",
               "file" => "/Users/private/Desktop/arjun-git/bff-web/cashiers.server.controller.js",
              "label" => "/usr/local/bin/node",
     "accessedTables" => [
        [0] "-"
    ],
               "line" => "4972",
           "reqParam" => {},
               "host" => "2.2.2.2",
           "datetime" => "2019-02-02 18:13:45:311"
}
  

Ответ №1:

Кажется, что ваше имя поля «otherString «, что не совпадает с «otherString». Не могли бы вы попробовать либо исправить способ, которым вы называете это поле в первую очередь, либо адаптировать фильтр mutate для соответствия этому конкретному имени поля?

Комментарии:

1. Я пробовал это remove_field => ["message", "otherString"] , но возникает исключение grok not match. Я не знаю, почему в ключе появляется знак (косая черта)

2. Вы назвали свое поле символом «» в конце …%{DATA:otherString»}. Просто измените его на «%{DATA:otherString}