logstash кафка ввода нескольких тем с разными кодеками - PullRequest
0 голосов
/ 09 января 2019

это мой logstash conf

input {
  kafka {
    bootstrap_servers => "127.0.0.1:9092"
    topics => ["filebeat", "access"]
    group_id => "test-consumer-group"
    consumer_threads => 1
    decorate_events => true
  }
}

У меня есть две темы, но я хочу использовать разные кодеки для другой темы. как я могу это сделать?

Я пытаюсь добавить

    if ([topic] == "filebeat") {
      codec => "json"
    }

во входном файле kafka conf logstash возвращает мне ошибки.

Failed to execute action {:action=>LogStash::PipelineAction::Create/pipeline_id:main, :exception=>"LogStash::ConfigurationError", :message=>"Expected one of #, => at line 6, column 8 (byte 143) after input {\n  kafka {\n    bootstrap_servers => \"127.0.0.1:9092\"\n    topics => [\"filebeat\", \"access\"]\n    group_id => \"test-consumer-group\"\n    if "

1 Ответ

0 голосов
/ 09 января 2019

Вы можете создать 2 отдельных входа кафки с каждым отдельным кодеком.

Еще один вариант - добавить фильтр, который анализирует объект json, в зависимости от темы

filter {
  if([topic] == "filebeat") {
    json {
      source => "message"
    }
  }
}

для дополнительной информации: https://www.elastic.co/guide/en/logstash/current/plugins-filters-json.html

...