我用以下输出配置了我的 Logstash:
output {
hosts => ["http://myhost/elasticsearch"]
}
这是一个有效的 URL,因为我可以使用它向 Elasticsearch 发送 cURL 命令,例如
curl "http://myhost/elasticsearch/_cat/indices?v"
返回我创建的索引。
但是,当 Logstash 尝试创建模板时,它会使用以下 URL:
http://myhost/_template/logstash
当我期望它使用
http://myhost/elasticsearch/_template/logstash
看来我的URL的/elasticsearch部分被切断了。这是怎么回事?"elasticsearch"是被删除的URL中的保留字吗?据我所知,当我发出http://myhost/elasticsearch/elasticsearch
时,它试图找到一个名为"elasticsearch"的索引,这让我相信它不是保留的。
将终结点 URL 更改为
http://myhost/myes
Logstash 仍在尝试访问
http://myhost/_template/logstash
可能有什么问题?
编辑Logstash 和 Elasticsearch 都是 v5.0.0
您尚未指定正在使用的 logstash 版本。 如果您使用的是 2.x 版本之一,则需要使用path => '/myes/'
参数来指定您的 ES 实例位于代理后面。 在 2.x 中,hosts
参数只是一个主机列表,而不是 URI。