Sonarqube - problem with connection to Elasticsearch

SonarQube version: 10.2.1.78527
elasticsearch version: 7.17.14
deployment: OpenStack virtual machine

Hi,
While Sonarqube is starting, I get the below error in es.log for Sonarqube

2023.10.25 13:50:02 INFO  es[][o.e.n.Node] version[8.7.0], pid[104648], build[tar/09520b59b6bc1057340b55750186466ea715e30e/2023-03-27T16:31:09.816451435Z], OS[Linux/5.15.0-67-generic/amd64], JVM[Private Build/OpenJDK 64-Bit Server VM/17.0.8.1/17.0.8.1+1-Ubuntu-0ubuntu122.04]
2023.10.25 13:50:02 INFO  es[][o.e.n.Node] JVM home [/usr/lib/jvm/java-17-openjdk-amd64], using bundled JDK [false]
2023.10.25 13:50:02 INFO  es[][o.e.n.Node] JVM arguments [-Des.networkaddress.cache.ttl=60, -Des.networkaddress.cache.negative.ttl=10, -Djava.security.manager=allow, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Dlog4j2.formatMsgNoLookups=true, -Djava.locale.providers=SPI,COMPAT, --add-opens=java.base/java.io=ALL-UNNAMED, -XX:+UseG1GC, -Djava.io.tmpdir=/data/sonarqube/temp, -XX:ErrorFile=/srv/sonarqube/sonarqube-10.2.1.78527/logs/es_hs_err_pid%p.log, -Xlog:disable, -Des.networkaddress.cache.ttl=60, -Des.networkaddress.cache.negative.ttl=10, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -Djna.tmpdir=/data/sonarqube/temp, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dio.netty.allocator.numDirectArenas=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Dlog4j2.formatMsgNoLookups=true, -Djava.locale.providers=COMPAT, -Dcom.redhat.fips=false, -Des.enforce.bootstrap.checks=true, -Xmx512m, -Xms512m, -XX:MaxDirectMemorySize=256m, -XX:+HeapDumpOnOutOfMemoryError, -XX:G1HeapRegionSize=4m, -XX:InitiatingHeapOccupancyPercent=30, -XX:G1ReservePercent=15, -Des.distribution.type=tar, --module-path=/srv/sonarqube/sonarqube-10.2.1.78527/elasticsearch/lib, --add-modules=jdk.net, -Djdk.module.main=org.elasticsearch.server]
2023.10.25 13:50:05 INFO  es[][o.e.p.PluginsService] loaded module [aggregations]
2023.10.25 13:50:05 INFO  es[][o.e.p.PluginsService] loaded module [analysis-common]
2023.10.25 13:50:05 INFO  es[][o.e.p.PluginsService] loaded module [apm]
2023.10.25 13:50:05 INFO  es[][o.e.p.PluginsService] loaded module [blob-cache]
2023.10.25 13:50:05 INFO  es[][o.e.p.PluginsService] loaded module [lang-painless]
2023.10.25 13:50:05 INFO  es[][o.e.p.PluginsService] loaded module [old-lucene-versions]
2023.10.25 13:50:05 INFO  es[][o.e.p.PluginsService] loaded module [parent-join]
2023.10.25 13:50:05 INFO  es[][o.e.p.PluginsService] loaded module [reindex]
2023.10.25 13:50:05 INFO  es[][o.e.p.PluginsService] loaded module [transport-netty4]
2023.10.25 13:50:05 INFO  es[][o.e.p.PluginsService] loaded module [x-pack-aggregate-metric]
2023.10.25 13:50:05 INFO  es[][o.e.p.PluginsService] loaded module [x-pack-core]
2023.10.25 13:50:05 INFO  es[][o.e.p.PluginsService] loaded module [x-pack-profiling]
2023.10.25 13:50:05 INFO  es[][o.e.p.PluginsService] loaded module [x-pack-security]
2023.10.25 13:50:05 INFO  es[][o.e.p.PluginsService] no plugins loaded
2023.10.25 13:50:15 INFO  es[][o.e.e.NodeEnvironment] using [1] data paths, mounts [[/data (/dev/vdb1)]], net usable_space [9gb], net total_space [9.7gb], types [ext4]
2023.10.25 13:50:15 INFO  es[][o.e.e.NodeEnvironment] heap size [512mb], compressed ordinary object pointers [true]
2023.10.25 13:50:15 INFO  es[][o.e.n.Node] node name [sonarqube], node ID [2T3IKL4XQIWyW9e8OC4ySA], cluster name [sonarqube], roles [data_hot, ml, data_frozen, ingest, data_cold, data, remote_cluster_client, master, data_warm, data_content, transform]
2023.10.25 13:50:17 INFO  es[][o.e.x.p.ProfilingPlugin] Profiling is enabled
2023.10.25 13:50:17 INFO  es[][o.e.x.s.Security] Security is disabled
2023.10.25 13:50:18 INFO  es[][o.e.t.n.NettyAllocator] creating NettyAllocator with the following configs: [name=unpooled, suggested_max_allocation_size=1mb, factors={es.unsafe.use_unpooled_allocator=null, g1gc_enabled=true, g1gc_region_size=4mb, heap_size=512mb}]
2023.10.25 13:50:18 INFO  es[][o.e.i.r.RecoverySettings] using rate limit [40mb] with [default=40mb, read=0b, write=0b, max=0b]
2023.10.25 13:50:18 INFO  es[][o.e.d.DiscoveryModule] using discovery type [single-node] and seed hosts providers [settings]
2023.10.25 13:50:19 INFO  es[][o.e.n.Node] initialized
2023.10.25 13:50:19 INFO  es[][o.e.n.Node] starting ...
2023.10.25 13:50:20 ERROR es[][o.e.b.Elasticsearch] fatal exception while booting Elasticsearch
org.elasticsearch.transport.BindTransportException: Failed to bind to 10.127.5.220:9200
	at org.elasticsearch.transport.TcpTransport.bindToPort(TcpTransport.java:525) ~[elasticsearch-8.7.0.jar:?]
	at org.elasticsearch.transport.TcpTransport.bindServer(TcpTransport.java:486) ~[elasticsearch-8.7.0.jar:?]
	at org.elasticsearch.transport.netty4.Netty4Transport.doStart(Netty4Transport.java:143) ~[?:?]
	at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:43) ~[elasticsearch-8.7.0.jar:?]
	at org.elasticsearch.transport.TransportService.doStart(TransportService.java:312) ~[elasticsearch-8.7.0.jar:?]
	at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:43) ~[elasticsearch-8.7.0.jar:?]
	at org.elasticsearch.node.Node.start(Node.java:1353) ~[elasticsearch-8.7.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.start(Elasticsearch.java:438) ~[elasticsearch-8.7.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.initPhase3(Elasticsearch.java:231) ~[elasticsearch-8.7.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:67) ~[elasticsearch-8.7.0.jar:?]
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: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:141) ~[?:?]
	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:600) ~[?:?]
	at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:579) ~[?:?]
	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.runTask(AbstractEventExecutor.java:174) ~[?:?]
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[?:?]
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[?:?]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[?:?]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[?:?]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[?:?]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]
2023.10.25 13:50:20 INFO  es[][o.e.n.Node] stopping ...
2023.10.25 13:50:20 INFO  es[][o.e.n.Node] stopped
2023.10.25 13:50:20 INFO  es[][o.e.n.Node] closing ...
2023.10.25 13:50:20 INFO  es[][o.e.n.Node] closed

elasticsearch.conf:

node.name: sonar-elasticsearch-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 10.127.5.220
http.port: 9200
discovery.type: single-node 

I used set discovery.type: single-node, because on the Sonarqube in es.log I see

2023.10.25 13:50:18 INFO  es[][o.e.d.DiscoveryModule] using discovery type [single-node] and seed hosts providers [settings]

sonar.properties config:

sonar.jdbc.username=sonar
sonar.jdbc.password=******
sonar.jdbc.url=jdbc:postgresql://10.127.5.129/sonardb
sonar.web.host=10.127.5.172
sonar.web.port=9000
sonar.web.context=/sonarqube
sonar.jdbc.maxActive=60
sonar.search.port=9200
sonar.es.port=9200
sonar.search.host=10.127.5.220
sonar.path.data=/data/sonarqube/data
sonar.path.temp=/data/sonarqube/temp

I don’t know what is going on. Why Elasticsearch process for Sonrqube throw

2023.10.25 13:50:20 ERROR es[][o.e.b.Elasticsearch] fatal exception while booting Elasticsearch
org.elasticsearch.transport.BindTransportException: Failed to bind to 10.127.5.220:9200

Have you ever met with this? I’ll be appreciated for any help or tips

Hi,

SonarQube 10.2.1 ships with Elasticsearch 8. We do not support swapping in a different version or configuring it directly.

That said, your error is pretty straight-forward:

Elasticsearch was unable to bind to its assigned port. You should investigate whether something else is using the port or if access to it is restricted.

 
HTH,
Ann