Могу ли я удалить поле сообщения из Logstash?

У меня есть базовая настройка Logstash → Elasticsearch, и, оказывается, поле "сообщение" не требуется после того, как фильтр logstash выполнил свое задание. Сохранение этого необработанного поля сообщения в elasticsearch только добавляет ненужные данные в хранилище imo.

Можно ли безопасно удалить это поле и вызовет ли он какие-либо проблемы с ES? советы или чтения приветствуются, спасибо всем.

Ответы

Ответ 1

Нет, это не вызовет никаких проблем для ES. Вы можете удалить поле message, если оно является избыточным или неиспользуемым.

Вы можете добавить этот filter к концу фильтров.

mutate
{
     remove_field => [ "message" ]
}

Ответ 2

Вы также можете сделать это в фильтре json.

filter {
  json {
    source => "message"
    remove_field => ["message"]
  }
}

Ответ 3

Я бы добавил следующее в качестве комментария к ответу Бена Лима, но я не знаю, как добавить блок кода в комментарий или даже это возможно...

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

Например, следующая комбинация ввода и кодека (JSON Lines over TCP) не создает поле message:

input {
  tcp {
    port => 5044
    codec => json_lines
  }
}
output {
  elasticsearch {
    hosts => ["localhost"]
    document_type => "mytype"
    index => "myindex"
  }
}