Logstash 似乎改变了 Elasticsearch 输出 URL



我用以下输出配置了我的 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。

最新更新