Это мой logstash.conf
:
input {
http {
host => "127.0.0.1"
port => 31311
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
}
stdout {
codec => "rubydebug"
}
}
В качестве теста я запустил эту команду в PowerShell:
C: \ Users \ Me \ Downloads \ curl-7.64.1-win64-mingw \ bin>. \ Curl.exe -XPUT 'http://127.0.0.1:31311/twitter'
В моем терминале Logstash
был показан следующий вывод:
{
"@timestamp" => 2019-04-09T08:32:09.250Z,
"message" => "",
"@version" => "1",
"headers" => {
"request_path" => "/twitter",
"http_version" => "HTTP/1.1",
"http_user_agent" => "curl/7.64.1",
"request_method" => "PUT",
"http_accept" => "*/*",
"content_length" => "0",
"http_host" => "127.0.0.1:31311"
},
"host" => "127.0.0.1"
}
Когда я тогда запустил
C: \ Users \ Me \ Downloads \ curl-7.64.1-win64-mingw \ bin>. \ Curl.exe -XGET "http://127.0.0.1:9200/_cat/indices"
внутри PowerShell, я видел
yellow open logstash-2019.04.09 1THStdPfQySWl1WPNeiwPQ 5 1 0 0 401b 401b
Индекс с именем logstash-2019.04.09
был создан в ответ на мой запрос PUT
в соответствии с соглашением ElasticSearch .
Мой вопрос: если я хочу, чтобы индекс имел то же значение, что и параметр {index_name}
, который я передаю в команду .\curl.exe -XPUT 'http://127.0.0.1:31311/{index_name}'
, как мне настроить вывод ElasticSearch внутри моего logstash.conf
file?
EDIT: Просто для пояснения, я хочу, чтобы {index_name}
читался динамически каждый раз, когда я делаю запрос PUT
для создания нового индекса.возможно