弹性搜索 - Ubuntu - 连接被拒绝
Elastic Search - Ubuntu - Connection Refused
我已经在 Ubuntu 14.04 上安装了 elastic 2.2。我保留了 elastic 的默认初始设置,并且可以从该系统访问弹性实例 localhost: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.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.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
这是由于配置文件中的错误造成的。我没有遵守 YAML 指南,而是盲目地遵循弹性帮助文档。
必须以 YML 格式指定网络和端口,如下所示:
network:
host: 0.0.0.0
http:
port: 9200
之后重启弹性服务。如果出现问题,参考elastic日志文件,查看实例是否绑定了上述IP和9200端口,也可以查看listening IP/port (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
我已经在 Ubuntu 14.04 上安装了 elastic 2.2。我保留了 elastic 的默认初始设置,并且可以从该系统访问弹性实例 localhost: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.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.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
这是由于配置文件中的错误造成的。我没有遵守 YAML 指南,而是盲目地遵循弹性帮助文档。
必须以 YML 格式指定网络和端口,如下所示:
network:
host: 0.0.0.0
http:
port: 9200
之后重启弹性服务。如果出现问题,参考elastic日志文件,查看实例是否绑定了上述IP和9200端口,也可以查看listening IP/port (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