El formato Sprintf de Logstash para el complemento de salida Elasticsearch no funciona

Tengo problemas para usar sprintf para hacer referencia a los campos de eventos en el complemento de salida de Elasticsearch y no estoy seguro de por qué. A continuación se muestra el evento recibido de Filebeat y enviado a Elasticsearch después de que se complete el filtrado:

{
          "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"
        }
    }
}

Estoy tratando de indexar los archivos en función del entorno de filebeat. Aquí está mi archivo de configuración:

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 }
}

Creo que los campos de eventos referenciados ya se habrían rellenado cuando llegue al complemento de salida de Elasticsearch. Sin embargo, en el extremo de kibana, no registra el índice formateado. En cambio, es así como así:

¿Qué he hecho mal

Respuestas a la pregunta(1)

Su respuesta a la pregunta