Итак, с этим новым набором информации, рабочий конфиг должен быть:

я возникают проблемы с использованием sprintf для ссылки на поля событий в выходном плагине эластичного поиска, и я не уверен, почему. Ниже приведено событие, полученное из Filebeat и отправленное в Elasticsearch после завершения фильтрации:

{
          "beat" => {
        "hostname" => "ca86fed16953",
            "name" => "ca86fed16953",
         "version" => "6.5.1"
    },
    "@timestamp" => 2018-12-02T05:13:21.879Z,
          "host" => {
        "name" => "ca86fed16953"
    },
          "tags" => [
        [0] "beats_input_codec_plain_applied",
        [1] "_grokparsefailure"
    ],
        "fields" => {
        "env" => "DEV"
    },
        "source" => "/usr/share/filebeat/dockerlogs/logstash_DEV.log",
      "@version" => "1",
    "prospector" => {
        "type" => "log"
    },
        "bgp_id" => "42313900",
       "message" => "{<some message here>}",
        "offset" => 1440990627,
         "input" => {
        "type" => "log"
    },
        "docker" => {
        "container" => {
            "id" => "logstash_DEV.log"
        }
    }
}

Я пытаюсь проиндексировать файлы на основе среды filebeat. Вот мой конфигурационный файл:

input {
  http { }
  beats {
    port => 5044
  }
}

filter {
  grok {
    patterns_dir => ["/usr/share/logstash/pipeline/patterns"]
    break_on_match => false
    match => { "message" => ["%{RUBY_LOGGER}"]
             }
  }
}

output {
  elasticsearch {
    hosts => ["elasticsearch:9200"]
    index => "%{[fields][env]}-%{+yyyy.MM.dd}"
  }
  stdout { codec => rubydebug }
}

Я бы подумал, что указанные поля событий уже были бы заполнены к тому времени, когда он достигнет плагина вывода эластичного поиска. Однако на конце кибаны он не регистрирует отформатированный индекс. Вместо этого, так как это:

Что я сделал не так?

Ответы на вопрос(1)

Ваш ответ на вопрос