今天,我在elasticsearch和curl方面遇到了一个奇怪的问题。 Elasticsearch运行正常,但是当我尝试使用curl连接它时,它将永远等待并且没有数据返回。
我试图从curl获取详细的输出,它可以连接到elasticsearch,但是连接后,它没有接收到数据。
curl -v http://10.0.0.1:9200/_cat/indices
* Trying 10.0.0.1...
* TCP_NODELAY set
* Connected to 10.0.0.1 (10.0.0.1) port 9200 (#0)
> GET /_cat/indices HTTP/1.1
> Host: 10.0.0.1:9200
> User-Agent: curl/7.52.1-DEV
> Accept: */*
>
它永远等待。另外elasticsearch php无法正常工作。
当我尝试使用lynx在同一台计算机上打开相同的URL时,它可以成功获取数据。但是当我尝试使用wget打开相同的URL时,它也将永远等待。 Curl可以毫无问题地连接其他外部Elasticsearch主机。另外,我们可以从其他主机毫无问题地连接到该Elasticsearch主机。
另一个奇怪的事情是,当我尝试使用curl或wget获取/ _cat / health时,他们可以获取数据。
curl -v http://10.0.0.1:9200/_cat/health
* Trying 10.0.0.1...
* TCP_NODELAY set
* Connected to 10.0.0.1 (10.0.0.1) port 9200 (#0)
> GET /_cat/health HTTP/1.1
> Host: 10.0.0.1:9200
> User-Agent: curl/7.52.1-DEV
> Accept: */*
>
< HTTP/1.1 200 OK
< content-type: text/plain; charset=UTF-8
< content-length: 63
<
1545812391 11:19:51 mycluster green 2 2 382 381 0 0 0 0 - 100.0%
* Curl_http_done: called premature == 0
* Connection #0 to host 10.0.0.1 left intact
两台计算机上都没有防火墙。我试图更新卷曲,没有任何改变。我也找不到有关syslog,elasticsearch日志等的有用信息。
知道为什么会这样吗?
此系统可以正常运行4个月。我从2天开始遇到这个问题。然后,我尝试升级系统软件包,重新启动服务器,但没有任何改变。我也清除了arp缓存。
谢谢。