У меня проблемы с использованием 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 }
}
Я думаю, что указанные поля событий уже были бы заполнены к тому времени, когда он достигнет выходного плагинаasticsearch.Однако на конце кибаны он не регистрирует отформатированный индекс.Вместо этого, с тех пор вот так:
![enter image description here](https://i.stack.imgur.com/bGwTT.png)
Что я сделал не так?