Trouble installing OpenSearch with docker-compose opensearch-dashboards | {"type":"log","@timestamp":"2025-12-23T03:39:06Z","tags":["error","opensearch","data"],"pid":1,"message":"[ConnectionError]: connect ECONNREFUSED 172.18.0.2:9200"}

After following the tutorial on deploying an opensearch cluster using Docker Composer in this document Docker - OpenSearch Documentation , I logged in with a browser http://localhost:5601/ After entering the account and password, the page will display as shown in the figure

my .env and docker-compose.yml
OPENSEARCH_INITIAL_ADMIN_PASSWORD=feiyuA?1234@wdf23,.rgdd

docker-compose.yml is consistent with the example in the above link

Relevant Logs:
I deleted some parts in the log that I thought were not important because there was a length limit
opensearch-node1 | Admin password set successfully.
opensearch-node1 | ### Success
opensearch-node1 | ### Execute this script now on all your nodes and then start all nodes
opensearch-node1 | ### OpenSearch Security will be automatically initialized.
opensearch-node1 | ### If you like to change the runtime configuration
opensearch-node1 | ### change the files in ../../../config/opensearch-security and execute:
opensearch-node1 | sudo “/usr/share/opensearch/plugins/opensearch-security/tools/securityadmin.sh” -cd “/usr/share/opensearch/config/opensearch-security” -icl -key “/usr/share/opensearch/config/kirk-key.pem” -cert “/usr/share/opensearch/config/kirk.pem” -cacert “/usr/share/opensearch/config/root-ca.pem” -nhnv
opensearch-node1 | ### or run ./securityadmin_demo.sh
opensearch-node1 | ### To use the Security Plugin ConfigurationGUI
opensearch-node1 | ### To access your secured cluster open https://: and log in with admin/.
opensearch-node1 | ### (Ignore the SSL certificate warning because we installed self-signed demo certificates)
opensearch-node1 | Enabling execution of OPENSEARCH_HOME/bin/opensearch-performance-analyzer/performance-analyzer-agent-cli for OpenSearch Performance Analyzer Plugin
opensearch-node1 | WARNING: Using incubator modules: jdk.incubator.vector
opensearch-node1 | WARNING: Unknown module: org.apache.arrow.memory.core specified to --add-opens
opensearch-node1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
opensearch-node1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by net.bytebuddy.dynamic.loading.ClassInjector$UsingUnsafe$Dispatcher$CreationAction
opensearch-node1 | WARNING: Please consider reporting this to the maintainers of class net.bytebuddy.dynamic.loading.ClassInjector$UsingUnsafe$Dispatcher$CreationAction
opensearch-node1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
opensearch-node1 | WARNING: A restricted method in java.lang.System has been called
opensearch-node1 | WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/usr/share/opensearch/lib/jna-5.16.0.jar)
opensearch-node1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
opensearch-node1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled
opensearch-node1 |
opensearch-node1 | [2025-12-23T06:31:58,273][WARN ][stderr ] [opensearch-node1] Dec 23, 2025 6:31:58 AM org.opensearch.javaagent.bootstrap.AgentPolicy setPolicy
opensearch-node1 | [2025-12-23T06:31:58,277][WARN ][stderr ] [opensearch-node1] INFO: Policy attached successfully: org.opensearch.bootstrap.OpenSearchPolicy@2cc03cd1
opensearch-node1 | [2025-12-23T06:31:58,311][INFO ][o.o.n.Node ] [opensearch-node1] version[3.4.0], pid[1], build[tar/00336141f90b2456d7aa35e9052fd6baf7147423/2025-12-15T21:40:44.005079862Z], OS[Linux/6.12.54-linuxkit/aarch64], JVM[Eclipse Adoptium/OpenJDK 64-Bit Server VM/25.0.1/25.0.1+8-LTS]
opensearch-node1 | [2025-12-23T06:31:58,311][INFO ][o.o.n.Node ] [opensearch-node1] JVM home [/usr/share/opensearch/jdk], using bundled JDK/JRE [true]
opensearch-node1 | [2025-12-23T06:31:58,311][INFO ][o.o.n.Node ] [opensearch-node1] JVM arguments [-Xshare:auto, -Dopensearch.networkaddress.cache.ttl=60, -Dopensearch.networkaddress.cache.negative.ttl=10, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -XX:+ShowCodeDetailsInExceptionMessages, -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, -Djava.locale.providers=SPI,CLDR, -Xms1g, -Xmx1g, -XX:+UseG1GC, -XX:G1ReservePercent=25, -XX:InitiatingHeapOccupancyPercent=30, -Djava.io.tmpdir=/tmp/opensearch-8541563177636915885, -XX:+HeapDumpOnOutOfMemoryError, -XX:HeapDumpPath=data, -XX:ErrorFile=logs/hs_err_pid%p.log, -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m, --add-modules=jdk.incubator.vector, -javaagent:agent/opensearch-agent.jar, --add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED, -Dorg.apache.lucene.store.MMapDirectory.sharedArenaMaxPermits=1, -Dclk.tck=100, -Djdk.attach.allowAttachSelf=true, -Djava.security.policy=/usr/share/opensearch/config/opensearch-performance-analyzer/opensearch_security.policy, --add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED, -Dopensearch.cgroups.hierarchy.override=/, -Xms512m, -Xmx512m, -XX:MaxDirectMemorySize=268435456, -Dopensearch.path.home=/usr/share/opensearch, -Dopensearch.path.conf=/usr/share/opensearch/config, -Dopensearch.distribution.type=tar, -Dopensearch.bundled_jdk=true]
opensearch-node1 | [2025-12-23T06:31:58,374][WARN ][o.o.p.PluginsService ] [opensearch-node1] Missing plugin [workload-management], dependency of [opensearch-security]
opensearch-node1 | [2025-12-23T06:31:58,374][WARN ][o.o.p.PluginsService ] [opensearch-node1] Some features of this plugin may not function without the dependencies being installed.
opensearch-node1 |
opensearch-node1 | [2025-12-23T06:31:58,820][WARN ][stderr ] [opensearch-node1] Dec 23, 2025 6:31:58 AM org.apache.lucene.internal.vectorization.PanamaVectorizationProvider
opensearch-node1 | [2025-12-23T06:31:58,820][WARN ][stderr ] [opensearch-node1] INFO: Java vector incubator API enabled; uses preferredBitSize=128; FMA enabled
opensearch-node2 | Detected OpenSearch Version: 3.4.0
opensearch-node2 | Detected OpenSearch Security Version: 3.4.0.0
opensearch-node2 | Admin password set successfully.
opensearch-node2 | ### Success
opensearch-node2 | ### Execute this script now on all your nodes and then start all nodes
opensearch-node2 | ### OpenSearch Security will be automatically initialized.
opensearch-node2 | ### If you like to change the runtime configuration
opensearch-node2 | ### change the files in ../../../config/opensearch-security and execute:
opensearch-node2 | sudo “/usr/share/opensearch/plugins/opensearch-security/tools/securityadmin.sh” -cd “/usr/share/opensearch/config/opensearch-security” -icl -key “/usr/share/opensearch/config/kirk-key.pem” -cert “/usr/share/opensearch/config/kirk.pem” -cacert “/usr/share/opensearch/config/root-ca.pem” -nhnv
opensearch-node2 | ### or run ./securityadmin_demo.sh
opensearch-node2 | ### To use the Security Plugin ConfigurationGUI
opensearch-node2 | ### To access your secured cluster open https://: and log in with admin/.
opensearch-node2 | ### (Ignore the SSL certificate warning because we installed self-signed demo certificates)
opensearch-node2 | Enabling execution of OPENSEARCH_HOME/bin/opensearch-performance-analyzer/performance-analyzer-agent-cli for OpenSearch Performance Analyzer Plugin
opensearch-node2 | WARNING: Using incubator modules: jdk.incubator.vector
opensearch-node2 | WARNING: Unknown module: org.apache.arrow.memory.core specified to --add-opens
opensearch-node2 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
opensearch-node2 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by net.bytebuddy.dynamic.loading.ClassInjector$UsingUnsafe$Dispatcher$CreationAction
opensearch-node2 | WARNING: Please consider reporting this to the maintainers of class net.bytebuddy.dynamic.loading.ClassInjector$UsingUnsafe$Dispatcher$CreationAction
opensearch-node2 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
opensearch-node2 | WARNING: A restricted method in java.lang.System has been called
opensearch-node2 | WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/usr/share/opensearch/lib/jna-5.16.0.jar)
opensearch-node2 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
opensearch-node2 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled
opensearch-node2 |
opensearch-node2 | [2025-12-23T06:31:58,731][WARN ][stderr ] [opensearch-node2] Dec 23, 2025 6:31:58 AM org.opensearch.javaagent.bootstrap.AgentPolicy setPolicy
opensearch-node2 | [2025-12-23T06:31:58,734][WARN ][stderr ] [opensearch-node2] INFO: Policy attached successfully: org.opensearch.bootstrap.OpenSearchPolicy@10895b16
opensearch-node2 | [2025-12-23T06:31:58,754][INFO ][o.o.n.Node ] [opensearch-node2] version[3.4.0], pid[1], build[tar/00336141f90b2456d7aa35e9052fd6baf7147423/2025-12-15T21:40:44.005079862Z], OS[Linux/6.12.54-linuxkit/aarch64], JVM[Eclipse Adoptium/OpenJDK 64-Bit Server VM/25.0.1/25.0.1+8-LTS]
opensearch-node2 | [2025-12-23T06:31:58,754][INFO ][o.o.n.Node ] [opensearch-node2] JVM home [/usr/share/opensearch/jdk], using bundled JDK/JRE [true]
opensearch-node2 | [2025-12-23T06:31:58,755][INFO ][o.o.n.Node ] [opensearch-node2] JVM arguments [-Xshare:auto, -Dopensearch.networkaddress.cache.ttl=60, -Dopensearch.networkaddress.cache.negative.ttl=10, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -XX:+ShowCodeDetailsInExceptionMessages, -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, -Djava.locale.providers=SPI,CLDR, -Xms1g, -Xmx1g, -XX:+UseG1GC, -XX:G1ReservePercent=25, -XX:InitiatingHeapOccupancyPercent=30, -Djava.io.tmpdir=/tmp/opensearch-4468893649917267312, -XX:+HeapDumpOnOutOfMemoryError, -XX:HeapDumpPath=data, -XX:ErrorFile=logs/hs_err_pid%p.log, -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m, --add-modules=jdk.incubator.vector, -javaagent:agent/opensearch-agent.jar, --add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED, -Dorg.apache.lucene.store.MMapDirectory.sharedArenaMaxPermits=1, -Dclk.tck=100, -Djdk.attach.allowAttachSelf=true, -Djava.security.policy=/usr/share/opensearch/config/opensearch-performance-analyzer/opensearch_security.policy, --add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED, -Dopensearch.cgroups.hierarchy.override=/, -Xms512m, -Xmx512m, -XX:MaxDirectMemorySize=268435456, -Dopensearch.path.home=/usr/share/opensearch, -Dopensearch.path.conf=/usr/share/opensearch/config, -Dopensearch.distribution.type=tar, -Dopensearch.bundled_jdk=true]
opensearch-node2 | [2025-12-23T06:31:58,815][WARN ][o.o.p.PluginsService ] [opensearch-node2] Missing plugin [workload-management], dependency of [opensearch-security]
opensearch-node2 | [2025-12-23T06:31:58,815][WARN ][o.o.p.PluginsService ] [opensearch-node2] Some features of this plugin may not function without the dependencies being installed.
opensearch-node2 |
opensearch-node2 | [2025-12-23T06:31:59,418][WARN ][stderr ] [opensearch-node2] Dec 23, 2025 6:31:59 AM org.apache.lucene.internal.vectorization.PanamaVectorizationProvider
opensearch-node2 | [2025-12-23T06:31:59,419][WARN ][stderr ] [opensearch-node2] INFO: Java vector incubator API enabled; uses preferredBitSize=128; FMA enabled
opensearch-dashboards | {“type”:“log”,“@timestamp”:“2025-12-23T06:31:54Z”,“tags”:[“warning”,“config”,“deprecation”],“pid”:1,“message”:“"opensearch.requestHeadersWhitelist" is deprecated and has been replaced by "opensearch.requestHeadersAllowlist"”}
opensearch-dashboards | {“type”:“log”,“@timestamp”:“2025-12-23T06:31:54Z”,“tags”:[“info”,“dynamic-config-service”],“pid”:1,“message”:“registering middleware to inject context to AsyncLocalStorage”}
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | {“type”:“log”,“@timestamp”:“2025-12-23T06:31:55Z”,“tags”:[“info”,“plugins-system”],“pid”:1,“message”:“Setting up [55] plugins: [usageCollection,opensearchDashboardsUsageCollection,opensearchDashboardsLegacy,mapsLegacy,opensearchUiShared,share,legacyExport,embeddable,expressions,data,savedObjects,queryEnhancements,home,dashboard,visualizations,visTypeTable,visTypeMarkdown,visTypeVega,visBuilder,visTypeTimeline,regionMap,visAugmenter,tileMap,inputControlVis,visualize,apmOss,management,indexPatternManagement,dataSourceManagement,reportsDashboards,securityAnalyticsDashboards,searchRelevanceDashboards,mlCommonsDashboards,indexManagementDashboards,assistantDashboards,anomalyDetectionDashboards,alertingDashboards,flowFrameworkDashboards,customImportMapDashboards,queryInsightsDashboards,notificationsDashboards,console,advancedSettings,dataExplorer,bfetch,charts,visTypeTagcloud,visTypeVislib,visTypeTimeseries,visTypeMetric,discover,savedObjectsManagement,securityDashboards,observabilityDashboards,queryWorkbenchDashboards]”}
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | {“type”:“log”,“@timestamp”:“2025-12-23T06:31:55Z”,“tags”:[“info”,“plugins”,“queryEnhancements”],“pid”:1,“message”:“queryEnhancements: Setup complete”}
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | [agentkeepalive:deprecated] options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead
opensearch-dashboards | {“type”:“log”,“@timestamp”:“2025-12-23T06:31:56Z”,“tags”:[“info”,“dynamic-config-service”],“pid”:1,“message”:“initiating start()”}
opensearch-dashboards | {“type”:“log”,“@timestamp”:“2025-12-23T06:31:56Z”,“tags”:[“info”,“dynamic-config-service”],“pid”:1,“message”:“finished start()”}
opensearch-dashboards | {“type”:“log”,“@timestamp”:“2025-12-23T06:31:56Z”,“tags”:[“info”,“savedobjects-service”],“pid”:1,“message”:“Waiting until all OpenSearch nodes are compatible with OpenSearch Dashboards before starting saved objects migrations…”}
opensearch-dashboards | {“type”:“log”,“@timestamp”:“2025-12-23T06:31:56Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:1,“message”:“[ConnectionError]: connect ECONNREFUSED 172.18.0.3:9200”}
opensearch-dashboards | {“type”:“log”,“@timestamp”:“2025-12-23T06:31:56Z”,“tags”:[“error”,“savedobjects-service”],“pid”:1,“message”:“Unable to retrieve version information from OpenSearch nodes.”}
opensearch-dashboards | {“type”:“log”,“@timestamp”:“2025-12-23T06:31:59Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:1,“message”:“[ConnectionError]: connect ECONNREFUSED 172.18.0.3:9200”}
opensearch-node1 | [2025-12-23T06:32:01,556][INFO ][o.o.s.s.t.SSLConfig ] [opensearch-node1] SSL dual mode is disabled
opensearch-node1 | [2025-12-23T06:32:01,559][INFO ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node1] OpenSearch Config path is /usr/share/opensearch/config
opensearch-node2 | [2025-12-23T06:32:01,699][INFO ][o.o.s.s.t.SSLConfig ] [opensearch-node2] SSL dual mode is disabled
opensearch-node2 | [2025-12-23T06:32:01,700][INFO ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node2] OpenSearch Config path is /usr/share/opensearch/config
opensearch-dashboards | {“type”:“log”,“@timestamp”:“2025-12-23T06:32:01Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:1,“message”:“[ConnectionError]: connect ECONNREFUSED 172.18.0.3:9200”}
opensearch-node1 | [2025-12-23T06:32:04,191][INFO ][o.o.s.s.SslSettingsManager] [opensearch-node1] TLS HTTP Provider : JDK
opensearch-node1 | [2025-12-23T06:32:04,193][INFO ][o.o.s.s.SslSettingsManager] [opensearch-node1] Enabled TLS protocols for HTTP layer : [TLSv1.3, TLSv1.2]
opensearch-node1 | [2025-12-23T06:32:04,195][INFO ][o.o.s.s.SslSettingsManager] [opensearch-node1] TLS Transport Client Provider : JDK
opensearch-node1 | [2025-12-23T06:32:04,196][INFO ][o.o.s.s.SslSettingsManager] [opensearch-node1] TLS Transport Server Provider : JDK
opensearch-node1 | [2025-12-23T06:32:04,196][INFO ][o.o.s.s.SslSettingsManager] [opensearch-node1] Enabled TLS protocols for Transport layer : [TLSv1.3, TLSv1.2]
opensearch-node2 | [2025-12-23T06:32:04,217][INFO ][o.o.s.s.SslSettingsManager] [opensearch-node2] TLS HTTP Provider : JDK
opensearch-node2 | [2025-12-23T06:32:04,218][INFO ][o.o.s.s.SslSettingsManager] [opensearch-node2] Enabled TLS protocols for HTTP layer : [TLSv1.3, TLSv1.2]
opensearch-node2 | [2025-12-23T06:32:04,223][INFO ][o.o.s.s.SslSettingsManager] [opensearch-node2] TLS Transport Client Provider : JDK
opensearch-node2 | [2025-12-23T06:32:04,224][INFO ][o.o.s.s.SslSettingsManager] [opensearch-node2] TLS Transport Server Provider : JDK
opensearch-node2 | [2025-12-23T06:32:04,225][INFO ][o.o.s.s.SslSettingsManager] [opensearch-node2] Enabled TLS protocols for Transport layer : [TLSv1.3, TLSv1.2]
opensearch-dashboards | {“type”:“log”,“@timestamp”:“2025-12-23T06:32:04Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:1,“message”:“[ConnectionError]: connect ECONNREFUSED 172.18.0.3:9200”}
opensearch-node1 | [2025-12-23T06:32:05,177][INFO ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node1] Clustername: opensearch-cluster
opensearch-node2 | [2025-12-23T06:32:05,211][INFO ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node2] Clustername: opensearch-cluster
opensearch-node1 | [2025-12-23T06:32:05,377][WARN ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node1] Directory /usr/share/opensearch/config has insecure file permissions (should be 0700)
opensearch-node1 | [2025-12-23T06:32:05,377][WARN ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node1] File /usr/share/opensearch/config/kirk-key.pem has insecure file permissions (should be 0600)
opensearch-node1 | [2025-12-23T06:32:05,378][WARN ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node1] File /usr/share/opensearch/config/esnode.pem has insecure file permissions (should be 0600)
opensearch-node1 | [2025-12-23T06:32:05,378][WARN ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node1] File /usr/share/opensearch/config/securityadmin_demo.sh has insecure file permissions (should be 0600)
opensearch-node1 | [2025-12-23T06:32:05,378][WARN ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node1] File /usr/share/opensearch/config/esnode-key.pem has insecure file permissions (should be 0600)
opensearch-node1 | [2025-12-23T06:32:05,378][WARN ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node1] File /usr/share/opensearch/config/root-ca.pem has insecure file permissions (should be 0600)
opensearch-node1 | [2025-12-23T06:32:05,378][WARN ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node1] File /usr/share/opensearch/config/kirk.pem has insecure file permissions (should be 0600)
opensearch-node2 | [2025-12-23T06:32:05,380][WARN ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node2] Directory /usr/share/opensearch/config has insecure file permissions (should be 0700)
opensearch-node2 | [2025-12-23T06:32:05,381][WARN ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node2] File /usr/share/opensearch/config/kirk-key.pem has insecure file permissions (should be 0600)
opensearch-node2 | [2025-12-23T06:32:05,381][WARN ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node2] File /usr/share/opensearch/config/esnode.pem has insecure file permissions (should be 0600)
opensearch-node2 | [2025-12-23T06:32:05,384][WARN ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node2] File /usr/share/opensearch/config/securityadmin_demo.sh has insecure file permissions (should be 0600)
opensearch-node2 | [2025-12-23T06:32:05,384][WARN ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node2] File /usr/share/opensearch/config/esnode-key.pem has insecure file permissions (should be 0600)
opensearch-node2 | [2025-12-23T06:32:05,384][WARN ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node2] File /usr/share/opensearch/config/root-ca.pem has insecure file permissions (should be 0600)
opensearch-node2 | [2025-12-23T06:32:05,384][WARN ][o.o.s.OpenSearchSecurityPlugin] [opensearch-node2] File /usr/share/opensearch/config/kirk.pem has insecure file permissions (should be 0600)
opensearch-dashboards | {“type”:“log”,“@timestamp”:“2025-12-23T06:32:06Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:1,“message”:“[ConnectionError]: connect ECONNREFUSED 172.18.0.3:9200”}
opensearch-node1 | [2025-12-23T06:32:08,579][ERROR][o.o.p.c.c.PluginSettings ] [opensearch-node1] Loading config file /usr/share/opensearch/config/opensearch-performance-analyzer/performance-analyzer.properties failed with error: org.opensearch.performanceanalyzer.commons.config.ConfigFileException: java.io.FileNotFoundException: /usr/share/opensearch/config/opensearch-performance-analyzer/performance-analyzer.properties (No such file or directory). Disabling plugin.
opensearch-node1 | [2025-12-23T06:32:08,585][INFO ][o.o.p.c.c.PluginSettings ] [opensearch-node1] Config: metricsLocation: /dev/shm/performanceanalyzer/, metricsDeletionInterval: 1, httpsEnabled: false, cleanup-metrics-db-files: false, batch-metrics-retention-period-minutes: 7, rpc-port: 9650, webservice-port 9600
opensearch-node2 | [2025-12-23T06:32:08,591][ERROR][o.o.p.c.c.PluginSettings ] [opensearch-node2] Loading config file /usr/share/opensearch/config/opensearch-performance-analyzer/performance-analyzer.properties failed with error: org.opensearch.performanceanalyzer.commons.config.ConfigFileException: java.io.FileNotFoundException: /usr/share/opensearch/config/opensearch-performance-analyzer/performance-analyzer.properties (No such file or directory). Disabling plugin.
opensearch-node2 | [2025-12-23T06:32:08,617][INFO ][o.o.p.c.c.PluginSettings ] [opensearch-node2] Config: metricsLocation: /dev/shm/performanceanalyzer/, metricsDeletionInterval: 1, httpsEnabled: false, cleanup-metrics-db-files: false, batch-metrics-retention-period-minutes: 7, rpc-port: 9650, webservice-port 9600
opensearch-dashboards | {“type”:“log”,“@timestamp”:“2025-12-23T06:32:09Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:1,“message”:“[ConnectionError]: connect ECONNREFUSED 172.18.0.3:9200”}
opensearch-node1 | [2025-12-23T06:32:09,998][ERROR][o.o.p.c.c.StatsCollector ] [opensearch-node1] Error in loading metadata for folderLocation: /usr/share/opensearch/config/opensearch-performance-analyzer/, fileLocation: plugin-stats-metadata
opensearch-node2 | [2025-12-23T06:32:09,980][ERROR][o.o.p.c.c.StatsCollector ] [opensearch-node2] Error in loading metadata for folderLocation: /usr/share/opensearch/config/opensearch-performance-analyzer/, fileLocation: plugin-stats-metadata
opensearch-node2 | java.io.FileNotFoundException: /usr/share/opensearch/config/opensearch-performance-analyzer/plugin-stats-metadata (No such file or directory)
opensearch-node2 | at java.base/java.io.FileInputStream.open0(Native Method) ~[?:?]
opensearch-node2 | at java.base/java.io.FileInputStream.open(FileInputStream.java:185) ~[?:?]
opensearch-node2 | at java.base/java.io.FileInputStream.(FileInputStream.java:139) ~[?:?]
opensearch-node2 | at java.base/java.io.FileInputStream.(FileInputStream.java:109) ~[?:?]
opensearch-node2 | at org.opensearch.performanceanalyzer.commons.collectors.StatsCollector.loadMetadata(StatsCollector.java:158) [performance-analyzer-commons-2.0.0.jar:?]
opensearch-node2 | at org.opensearch.performanceanalyzer.commons.collectors.StatsCollector.instance(StatsCollector.java:73) [performance-analyzer-commons-2.0.0.jar:?]
opensearch-node2 | at org.opensearch.performanceanalyzer.PerformanceAnalyzerPlugin.scheduleRcaCollectors(PerformanceAnalyzerPlugin.java:264) [opensearch-performance-analyzer-3.4.0.0.jar:3.4.0.0]
opensearch-node2 | at org.opensearch.performanceanalyzer.PerformanceAnalyzerPlugin.(PerformanceAnalyzerPlugin.java:213) [opensearch-performance-analyzer-3.4.0.0.jar:3.4.0.0]
opensearch-node2 | at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
opensearch-node2 | at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
opensearch-node1 | java.io.FileNotFoundException: /usr/share/opensearch/config/opensearch-performance-analyzer/plugin-stats-metadata (No such file or directory)
opensearch-node2 | at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483) ~[?:?]
opensearch-node2 | at org.opensearch.plugins.PluginsService.loadPlugin(PluginsService.java:864) [opensearch-3.4.0.jar:3.4.0]
opensearch-node2 | at org.opensearch.plugins.PluginsService.loadBundle(PluginsService.java:815) [opensearch-3.4.0.jar:3.4.0]
opensearch-node2 | at org.opensearch.plugins.PluginsService.loadBundles(PluginsService.java:613) [opensearch-3.4.0.jar:3.4.0]
opensearch-node2 | at org.opensearch.plugins.PluginsService.(PluginsService.java:227) [opensearch-3.4.0.jar:3.4.0]
opensearch-node1 | at java.base/java.io.FileInputStream.open0(Native Method) ~[?:?]
opensearch-node1 | at java.base/java.io.FileInputStream.open(FileInputStream.java:185) ~[?:?]
opensearch-node1 | at java.base/java.io.FileInputStream.(FileInputStream.java:139) ~[?:?]
opensearch-node1 | at java.base/java.io.FileInputStream.(FileInputStream.java:109) ~[?:?]
opensearch-node1 | at org.opensearch.performanceanalyzer.commons.collectors.StatsCollector.loadMetadata(StatsCollector.java:158) [performance-analyzer-commons-2.0.0.jar:?]
opensearch-node1 | at org.opensearch.performanceanalyzer.commons.collectors.StatsCollector.instance(StatsCollector.java:73) [performance-analyzer-commons-2.0.0.jar:?]
opensearch-node2 | at org.opensearch.node.Node.(Node.java:555) [opensearch-3.4.0.jar:3.4.0]
opensearch-node2 | at org.opensearch.node.Node.(Node.java:483) [opensearch-3.4.0.jar:3.4.0]
opensearch-node2 | at org.opensearch.bootstrap.Bootstrap$5.(Bootstrap.java:250) [opensearch-3.4.0.jar:3.4.0]
opensearch-node2 | at org.opensearch.bootstrap.Bootstrap.setup(Bootstrap.java:250) [opensearch-3.4.0.jar:3.4.0]
opensearch-node2 | at org.opensearch.bootstrap.Bootstrap.init(Bootstrap.java:412) [opensearch-3.4.0.jar:3.4.0]
opensearch-node2 | at org.opensearch.bootstrap.OpenSearch.init(OpenSearch.java:168) [opensearch-3.4.0.jar:3.4.0]
opensearch-node2 | at org.opensearch.bootstrap.OpenSearch.execute(OpenSearch.java:159) [opensearch-3.4.0.jar:3.4.0]
opensearch-node2 | at org.opensearch.common.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:110) [opensearch-3.4.0.jar:3.4.0]
opensearch-node2 | at org.opensearch.cli.Command.mainWithoutErrorHandling(Command.java:138) [opensearch-cli-3.4.0.jar:3.4.0]
opensearch-node2 | at org.opensearch.cli.Command.main(Command.java:101) [opensearch-cli-3.4.0.jar:3.4.0]
opensearch-node2 | at org.opensearch.bootstrap.OpenSearch.main(OpenSearch.java:125) [opensearch-3.4.0.jar:3.4.0]
opensearch-node2 | at org.opensearch.bootstrap.OpenSearch.main(OpenSearch.java:91) [opensearch-3.4.0.jar:3.4.0]
opensearch-node2 | [2025-12-23T06:32:10,036][INFO ][o.o.p.c.SearchBackPressureStatsCollector] [opensearch-node2] SearchBackPressureStatsCollector started
opensearch-node1 | at org.opensearch.performanceanalyzer.PerformanceAnalyzerPlugin.scheduleRcaCollectors(PerformanceAnalyzerPlugin.java:264) [opensearch-performance-analyzer-3.4.0.0.jar:3.4.0.0]
opensearch-node1 | at org.opensearch.performanceanalyzer.PerformanceAnalyzerPlugin.(PerformanceAnalyzerPlugin.java:213) [opensearch-performance-analyzer-3.4.0.0.jar:3.4.0.0]
opensearch-node1 | at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
opensearch-node1 | at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
opensearch-node1 | at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483) ~[?:?]
opensearch-node1 | at org.opensearch.plugins.PluginsService.loadPlugin(PluginsService.java:864) [opensearch-3.4.0.jar:3.4.0]
opensearch-node1 | at org.opensearch.plugins.PluginsService.loadBundle(PluginsService.java:815) [opensearch-3.4.0.jar:3.4.0]
opensearch-node1 | at org.opensearch.plugins.PluginsService.loadBundles(PluginsService.java:613) [opensearch-3.4.0.jar:3.4.0]
opensearch-node1 | at org.opensearch.plugins.PluginsService.(PluginsService.java:227) [opensearch-3.4.0.jar:3.4.0]
opensearch-node1 | at org.opensearch.node.Node.(Node.java:555) [opensearch-3.4.0.jar:3.4.0]
opensearch-node1 | at org.opensearch.node.Node.(Node.java:483) [opensearch-3.4.0.jar:3.4.0]
opensearch-node1 | at org.opensearch.bootstrap.Bootstrap$5.(Bootstrap.java:250) [opensearch-3.4.0.jar:3.4.0]
opensearch-node1 | at org.opensearch.bootstrap.Bootstrap.setup(Bootstrap.java:250) [opensearch-3.4.0.jar:3.4.0]
opensearch-node1 | at org.opensearch.bootstrap.Bootstrap.init(Bootstrap.java:412) [opensearch-3.4.0.jar:3.4.0]
opensearch-node1 | at org.opensearch.bootstrap.OpenSearch.init(OpenSearch.java:168) [opensearch-3.4.0.jar:3.4.0]
opensearch-node1 | at org.opensearch.bootstrap.OpenSearch.execute(OpenSearch.java:159) [opensearch-3.4.0.jar:3.4.0]
opensearch-node1 | at org.opensearch.common.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:110) [opensearch-3.4.0.jar:3.4.0]
opensearch-node1 | at org.opensearch.cli.Command.mainWithoutErrorHandling(Command.java:138) [opensearch-cli-3.4.0.jar:3.4.0]
opensearch-node1 | at org.opensearch.cli.Command.main(Command.java:101) [opensearch-cli-3.4.0.jar:3.4.0]
opensearch-node1 | at org.opensearch.bootstrap.OpenSearch.main(OpenSearch.java:125) [opensearch-3.4.0.jar:3.4.0]
opensearch-node1 | at org.opensearch.bootstrap.OpenSearch.main(OpenSearch.java:91) [opensearch-3.4.0.jar:3.4.0]
opensearch-node1 | [2025-12-23T06:32:10,027][INFO ][o.o.p.c.SearchBackPressureStatsCollector] [opensearch-node1] SearchBackPressureStatsCollector started
opensearch-dashboards | {“type”:“log”,“@timestamp”:“2025-12-23T06:32:11Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:1,“message”:“[ConnectionError]: connect ECONNREFUSED 172.18.0.3:9200”}
opensearch-node1 | [2025-12-23T06:32:12,671][INFO ][o.o.t.g.GrpcPlugin ] [opensearch-node1] Loading 1 QueryBuilderProtoConverter extensions from other plugins
opensearch-dashboards | {“type”:“response”,“@timestamp”:“2025-12-23T06:34:33Z”,“tags”:,“pid”:1,“method”:“post”,“statusCode”:200,“req”:{“url”:“/api/core/capabilities”,“routePath”:“/api/core/capabilities”,“method”:“post”,“headers”:{“host”:“localhost:5601”,“connection”:“keep-alive”,“content-length”:“923”,“osd-version”:“3.4.0”,“sec-ch-ua-platform”:“"macOS"”,“user-agent”:“Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0”,“sec-ch-ua”:“"Microsoft Edge";v="143", "Chromium";v="143", "Not A(Brand";v="24"”,“content-type”:“application/json”,“sec-ch-ua-mobile”:“?0”,“osd-xsrf”:“osd-fetch”,“accept”:“/”,“origin”:“``http://localhost:5601``”,“sec-fetch-site”:“same-origin”,“sec-fetch-mode”:“cors”,“sec-fetch-dest”:“empty”,“referer”:“``http://localhost:5601/app/login?",“accept-encoding”:"gzip``, deflate, br, zstd”,“accept-language”:“zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6”},“remoteAddress”:“192.168.65.1”,“userAgent”:“Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0”,“referer”:“``http://localhost:5601/app/login?"},“res”:{“statusCode”:200,“responseTime”:1493,“contentLength”:9},“message”:"POST`` /api/core/capabilities 200 1493ms - 9.0B”}

Hey, sorry to hear you’re having trouble.

I have a shot in the dark or two, and if those don’t pan out let’s look a little closer. There’s a lot to go through in your log snippets.

  1. You may want to double-quote your OPENSEARCH_INITIAL_ADMIN_PASSWORD just so there’s not some weird variable interpolation thing going on with any of those non-alphabetics. Or, try a simple password just to narrow out that problem. Make sure to delete your docker volumes before bringing up your cluster again.
  2. Are you using the docker-compose that we provide on our downloads page or one of your own creation? Mind sharing it?

Thanks for posting!

Nate

Thanks for your reply
the docker-compose I am using is exactly the one provided on your download page
i will try your suggestion

When I instantiate my docker containers, I do it from the command line like so:

$ OPENSEARCH_INITIAL_ADMIN_PASSWORD=”thepassword” docker-compose up &

I’m not sure if docker-compose automatically reads .env files or not. You may want to declare your variables like the above to see if you have better luck.