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



我已经在 Ubuntu 14.04 上安装了 elastic 2.2。我保留了弹性的默认初始设置,弹性实例可以从本地主机:9200 从该系统访问。

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

curl -XGET "http://<IP_ADDRESS_UBUNTU_SERVER>:9200"

我收到一个错误:

Failed to connect to <IP_ADDRESS_UBUNTU_SERVER> port 9200: Connection refused

我尝试更改 elasticsearch.yml 文件中的几个参数并将其设置为:

network.host: 0.0.0.0
http.port: 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 指南,并且盲目地遵循弹性帮助文档。

网络和端口必须以 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

最新更新