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