After installing a new ElasticSearch cluster I updated the elasticsearch.yml
to expose it outside the local Virtual Machine.
This is how the updated elasticsearch.yml
looked like:
There is definitely something wrong with this configuration as ElasticSearch refused to start.
A look at the log file showed the following error information:
[2022-05-09T09:45:02,104][ERROR][o.e.b.Bootstrap] [SERVER1] Exception
org.elasticsearch.transport.BindTransportException: Failed to bind to 192.168.0.1:[9300-9399]
at org.elasticsearch.transport.TcpTransport.bindToPort(TcpTransport.java:489) ~[elasticsearch-8.2.0.jar:8.2.0]
at org.elasticsearch.transport.TcpTransport.bindServer(TcpTransport.java:450) ~[elasticsearch-8.2.0.jar:8.2.0]
at org.elasticsearch.transport.netty4.Netty4Transport.doStart(Netty4Transport.java:147) ~[?:?]
at org.elasticsearch.xpack.core.security.transport.netty4.SecurityNetty4Transport.doStart(SecurityNetty4Transport.java:96) ~[?:?]
at org.elasticsearch.xpack.security.transport.netty4.SecurityNetty4ServerTransport.doStart(SecurityNetty4ServerTransport.java:59) ~[?:?]
at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:48) ~[elasticsearch-8.2.0.jar:8.2.0]
at org.elasticsearch.transport.TransportService.doStart(TransportService.java:274) ~[elasticsearch-8.2.0.jar:8.2.0]
at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:48) ~[elasticsearch-8.2.0.jar:8.2.0]
at org.elasticsearch.node.Node.start(Node.java:1164) ~[elasticsearch-8.2.0.jar:8.2.0]
at org.elasticsearch.bootstrap.Bootstrap.start(Bootstrap.java:272) ~[elasticsearch-8.2.0.jar:8.2.0]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:367) [elasticsearch-8.2.0.jar:8.2.0]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:166) [elasticsearch-8.2.0.jar:8.2.0]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:157) [elasticsearch-8.2.0.jar:8.2.0]
at org.elasticsearch.common.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:81) [elasticsearch-8.2.0.jar:8.2.0]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112) [elasticsearch-cli-8.2.0.jar:8.2.0]
at org.elasticsearch.cli.Command.main(Command.java:77) [elasticsearch-cli-8.2.0.jar:8.2.0]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:122) [elasticsearch-8.2.0.jar:8.2.0]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80) [elasticsearch-8.2.0.jar:8.2.0]
Caused by: java.net.BindException: Cannot assign requested address: bind
at sun.nio.ch.Net.bind0(Native Method) ~[?:?]
at sun.nio.ch.Net.bind(Net.java:555) ~[?:?]
at sun.nio.ch.ServerSocketChannelImpl.netBind(ServerSocketChannelImpl.java:337) ~[?:?]
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:294) ~[?:?]
at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:134) ~[?:?]
at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:562) ~[?:?]
at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334) ~[?:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506) ~[?:?]
at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:491) ~[?:?]
at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973) ~[?:?]
at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:260) ~[?:?]
at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356) ~[?:?]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) ~[?:?]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469) ~[?:?]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503) ~[?:?]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[?:?]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[?:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
[2022-05-09T09:45:02,104][WARN ][stderr] [SERVER1] org.elasticsearch.transport.BindTransportException: Failed to bind to 192.168.0.1:[9300-9399]
[2022-05-09T09:45:02,104][WARN ][stderr] [SERVER1] Likely root cause: java.net.BindException: Cannot assign requested address: bind
Although I updated the network.host
address to a non loopback address, using a local IP (192.168.0.1
) was not correct. Instead I should use 0.0.0.0
to use the default network interface.
To fix the error I updated the network.host setting: