elasticsearch,connection,port,Ubuntu,elasticsearch,Connection,Port" /> elasticsearch,connection,port,Ubuntu,elasticsearch,Connection,Port" />

弹性搜索-Ubuntu-连接被拒绝

弹性搜索-Ubuntu-连接被拒绝,ubuntu,elasticsearch,connection,port,Ubuntu,elasticsearch,Connection,Port,我已经在Ubuntu 14.04上安装了elastic 2.2。我保留了elastic的默认初始设置,并且可以从localhost:9200的系统访问elastic实例 现在,当我尝试通过另一个系统使用服务器的IP/DNS名称时: curl -XGET "http://<IP_ADDRESS_UBUNTU_SERVER>:9200" 但这并没有解决问题。我设置获取与拒绝连接相同的错误。事实上,设置上述参数并尝试使用localhost:9200从服务器访问也会导致连接超时错误 现在,

我已经在Ubuntu 14.04上安装了elastic 2.2。我保留了elastic的默认初始设置,并且可以从localhost:9200的系统访问elastic实例

现在,当我尝试通过另一个系统使用服务器的IP/DNS名称时:

curl -XGET "http://<IP_ADDRESS_UBUNTU_SERVER>:9200"
但这并没有解决问题。我设置获取与拒绝连接相同的错误。事实上,设置上述参数并尝试使用localhost:9200从服务器访问也会导致连接超时错误

现在,我需要设置什么配置,以便从外部访问这个弹性实例

编辑: 我试图将Ubuntu服务器的IP地址设置为network.host,但在日志文件中看到以下错误:

BindTransportException[Failed to bind to [9300-9400]]; nested: ChannelException[Failed to bind to: /10.173.1.176:9400]; nested: BindException[Cannot assign requested address];
        at org.elasticsearch.transport.netty.NettyTransport.bindToPort(NettyTransport.java:477)
        at org.elasticsearch.transport.netty.NettyTransport.bindServerBootstrap(NettyTransport.java:439)
        at org.elasticsearch.transport.netty.NettyTransport.doStart(NettyTransport.java:320)
        at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:68)
        at org.elasticsearch.transport.TransportService.doStart(TransportService.java:170)
        at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:68)
        at org.elasticsearch.node.Node.start(Node.java:252)
        at org.elasticsearch.bootstrap.Bootstrap.start(Bootstrap.java:221)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:287)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
Caused by: org.jboss.netty.channel.ChannelException: Failed to bind to: /10.173.1.176:9400
        at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:272)
        at org.elasticsearch.transport.netty.NettyTransport$1.onPortNumber(NettyTransport.java:459)
        at org.elasticsearch.common.transport.PortsRange.iterate(PortsRange.java:69)
        at org.elasticsearch.transport.netty.NettyTransport.bindToPort(NettyTransport.java:455)
        ... 9 more
Caused by: java.net.BindException: Cannot assign requested address
        at sun.nio.ch.Net.bind0(Native Method)
        at sun.nio.ch.Net.bind(Net.java:433)
        at sun.nio.ch.Net.bind(Net.java:425)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
        at org.jboss.netty.channel.socket.nio.NioServerBoss$RegisterTask.run(NioServerBoss.java:193)
        at org.jboss.netty.channel.socket.nio.AbstractNioSelector.processTaskQueue(AbstractNioSelector.java:391)
        at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:315)
        at org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServerBoss.java:42)
        at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
        at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

这是由于配置文件中的错误导致的。我没有遵守YAML指南,只是盲目地遵循elastic help doc

网络和端口必须以YML格式指定,如下所示:

network:
  host: 0.0.0.0
http:
  port: 9200
在此之后,重新启动弹性服务。如果出现问题,请参考弹性日志文件,检查实例是否绑定到上述IP和端口9200。您还可以检查侦听IP/端口(netstat-l-n)。必须有如下条目:

tcp 0 0 0.0.0.0:9200 0.0.0.0:* LISTEN 

希望这对你有所帮助,并祝你搜索愉快

除了在config.yml中进行正确的操作外,如果您正在编写自己的单元文件,您还需要通过在单元文件中设置一些设置(而不仅仅是在sysctl.conf中)来通过引导检查。所以在
/lib/systemd/system/elasticsearch.service

确保在指示部分中有以下设置:

[Unit]
LimitMEMLOCK=infinity

[Service]
LimitNOFILE=65536

试试
network.host:
只要它是一个公共IP地址,它就会工作。顺便说一句,为了排除我的服务器是否有任何问题,我在一些随机端口上使用python服务器托管了一个简单页面。我可以使用指定的端口从服务器外部访问此页面。因此,我认为这可能是弹性配置系统的一个问题。从ES 2.0开始,默认情况下,服务器将只绑定到本地主机,因此您必须显式地告诉它绑定到公共IP地址,以便从外部访问。@Val:我尝试过这个。IP地址只能从我的办公室网络访问。我所有的测试都在这个网络中。将network.host指定为此IP地址会导致相同的拒绝连接问题…在将network.host设置为IP地址时,我看到日志文件显示了一些错误::BindTransportException[未能绑定到[9300-9400];嵌套:ChannelException[绑定到:/10.173.1.176:9400失败];嵌套:BindException[无法分配请求的地址]。。。。原因:java.net.BindException:无法在sun.nio.ch.net.bind0(本机方法)分配请求的地址…我们也可以指定我们的IP地址,但它应该是您系统的正确IP,有时错误的IP也会造成上述异常。这事发生在我身上。
tcp 0 0 0.0.0.0:9200 0.0.0.0:* LISTEN 
[Unit]
LimitMEMLOCK=infinity

[Service]
LimitNOFILE=65536