OpenSearch 3.7.0 fails to start. I have Almalinux 10 installed. I needed OpenSearch for magento 2.
Describe the issue:
When run the command: sudo systemctl start opensearch and you will see: Job for opensearch.service failed because the control process exited with error code.
See “systemctl status opensearch.service” and “journalctl -xeu opensearch.service” for details.
opensearch.log:
[2026-07-17T20:51:28,136][WARN ][stderr ] [vmi3436067.contaboserver.net] Jul 17, 2026 8:51:28 PM org.opensearch.javaagent.bootstrap.AgentPolicy setPolicy
[2026-07-17T20:51:28,140][WARN ][stderr ] [vmi3436067.contaboserver.net] INFO: Policy attached successfully: org.opensearch.bootstrap.OpenSearchPolicy@383864d5
[2026-07-17T20:51:28,162][INFO ][o.o.n.Node ] [vmi3436067.contaboserver.net] version[3.7.0], pid[2856809], build[rpm/72121f014083f9ca010fd5a7da83b2ec4886027f/2026-06-03T23:30:23.512631638Z], OS[Linux/6.12.0-211.33.1.el10_2.x86_64/amd64], JVM[Eclipse Adoptium/OpenJDK 64-Bit Server VM/25.0.3/25.0.3+9-LTS]
[2026-07-17T20:51:28,163][INFO ][o.o.n.Node ] [vmi3436067.contaboserver.net] JVM home [/usr/share/opensearch/jdk], using bundled JDK/JRE [true]
[2026-07-17T20:51:28,163][INFO ][o.o.n.Node ] [vmi3436067.contaboserver.net] 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=/var/lib/opensearch/tmp, -XX:+HeapDumpOnOutOfMemoryError, -XX:HeapDumpPath=/var/lib/opensearch, -XX:ErrorFile=/var/log/opensearch/hs_err_pid%p.log, -Xlog:gc*,gc+age=trace,safepoint:file=/var/log/opensearch/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, -XX:+UseCompactObjectHeaders, -XX:MaxDirectMemorySize=536870912, -Dopensearch.path.home=/usr/share/opensearch, -Dopensearch.path.conf=/etc/opensearch, -Dopensearch.distribution.type=rpm, -Dopensearch.bundled_jdk=true]
[2026-07-17T20:51:28,263][WARN ][o.o.p.PluginsService ] [vmi3436067.contaboserver.net] Missing plugin [workload-management], dependency of [opensearch-security]
[2026-07-17T20:51:28,264][WARN ][o.o.p.PluginsService ] [vmi3436067.contaboserver.net] Some features of this plugin may not function without the dependencies being installed.
[2026-07-17T20:51:28,264][WARN ][o.o.p.PluginsService ] [vmi3436067.contaboserver.net] Missing plugin [analytics-engine], dependency of [opensearch-sql]
[2026-07-17T20:51:28,264][WARN ][o.o.p.PluginsService ] [vmi3436067.contaboserver.net] Some features of this plugin may not function without the dependencies being installed.
[2026-07-17T20:51:28,553][WARN ][stderr ] [vmi3436067.contaboserver.net] Jul 17, 2026 8:51:28 PM org.apache.lucene.internal.vectorization.PanamaVectorizationProvider <init>
[2026-07-17T20:51:28,553][WARN ][stderr ] [vmi3436067.contaboserver.net] INFO: Java vector incubator API enabled; uses preferredBitSize=256; FMA enabled
[2026-07-17T20:51:30,289][INFO ][o.o.c.b.JarHell ] [vmi3436067.contaboserver.net] Plugin [opensearch-neural-search] extends multiple plugins/modules that share common dependencies: [file:/usr/share/opensearch/modules/transport-grpc/grpc-util-1.75.0.jar, file:/usr/share/opensearch/modules/transport-grpc/failureaccess-1.0.2.jar, file:/usr/share/opensearch/modules/transport-grpc/grpc-protobuf-lite-1.75.0.jar, file:/usr/share/opensearch/modules/transport-grpc/grpc-protobuf-1.75.0.jar, file:/usr/share/opensearch/modules/transport-grpc/grpc-netty-shaded-1.75.0.jar, file:/usr/share/opensearch/modules/transport-grpc/transport-grpc-3.7.0.jar, file:/usr/share/opensearch/modules/transport-grpc/grpc-stub-1.75.0.jar, file:/usr/share/opensearch/modules/transport-grpc/protobufs-1.4.0.jar, file:/usr/share/opensearch/modules/transport-grpc/guava-33.2.1-jre.jar, file:/usr/share/opensearch/modules/transport-grpc/grpc-api-1.75.0.jar, file:/usr/share/opensearch/modules/transport-grpc/perfmark-api-0.27.0.jar, file:/usr/share/opensearch/modules/transport-grpc/grpc-services-1.75.0.jar, file:/usr/share/opensearch/modules/transport-grpc/grpc-core-1.75.0.jar, file:/usr/share/opensearch/modules/transport-grpc/transport-grpc-spi-3.7.0.jar]. This is expected when extended plugins share common ancestors.
[2026-07-17T20:51:30,785][INFO ][o.o.s.s.t.SSLConfig ] [vmi3436067.contaboserver.net] SSL dual mode is disabled
[2026-07-17T20:51:30,786][INFO ][o.o.s.OpenSearchSecurityPlugin] [vmi3436067.contaboserver.net] OpenSearch Config path is /etc/opensearch
[2026-07-17T20:51:32,545][ERROR][o.o.b.Bootstrap ] [vmi3436067.contaboserver.net] Exception
java.lang.IllegalStateException: failed to load plugin class [org.opensearch.security.OpenSearchSecurityPlugin]
at org.opensearch.plugins.PluginsService.loadPlugin(PluginsService.java:928)
at org.opensearch.plugins.PluginsService.loadBundle(PluginsService.java:870)
at org.opensearch.plugins.PluginsService.loadBundles(PluginsService.java:653)
at org.opensearch.plugins.PluginsService.<init>(PluginsService.java:227)
at org.opensearch.node.Node.<init>(Node.java:567)
at org.opensearch.node.Node.<init>(Node.java:495)
at org.opensearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:252)
at org.opensearch.bootstrap.Bootstrap.setup(Bootstrap.java:252)
at org.opensearch.bootstrap.Bootstrap.init(Bootstrap.java:414)
at org.opensearch.bootstrap.OpenSearch.init(OpenSearch.java:168)
at org.opensearch.bootstrap.OpenSearch.execute(OpenSearch.java:159)
at org.opensearch.common.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:110)
at org.opensearch.cli.Command.mainWithoutErrorHandling(Command.java:138)
at org.opensearch.cli.Command.main(Command.java:101)
at org.opensearch.bootstrap.OpenSearch.main(OpenSearch.java:125)
at org.opensearch.bootstrap.OpenSearch.main(OpenSearch.java:91)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:74)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
at org.opensearch.plugins.PluginsService.loadPlugin(PluginsService.java:919)
... 15 more
Caused by: OpenSearchException[No SSL configuration found]
at org.opensearch.security.ssl.SslSettingsManager.loadConfigurations(SslSettingsManager.java:145)
at org.opensearch.security.ssl.SslSettingsManager.buildSslContexts(SslSettingsManager.java:103)
at org.opensearch.security.ssl.SslSettingsManager.<init>(SslSettingsManager.java:86)
at org.opensearch.security.ssl.OpenSearchSecuritySSLPlugin.<init>(OpenSearchSecuritySSLPlugin.java:229)
at org.opensearch.security.OpenSearchSecurityPlugin.<init>(OpenSearchSecurityPlugin.java:384)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
... 18 more
[2026-07-17T20:51:32,552][ERROR][o.o.b.OpenSearchUncaughtExceptionHandler] [vmi3436067.contaboserver.net] uncaught exception in thread [main]
org.opensearch.bootstrap.StartupException: java.lang.IllegalStateException: failed to load plugin class [org.opensearch.security.OpenSearchSecurityPlugin]
at org.opensearch.bootstrap.OpenSearch.init(OpenSearch.java:172)
at org.opensearch.bootstrap.OpenSearch.execute(OpenSearch.java:159)
at org.opensearch.common.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:110)
at org.opensearch.cli.Command.mainWithoutErrorHandling(Command.java:138)
at org.opensearch.cli.Command.main(Command.java:101)
at org.opensearch.bootstrap.OpenSearch.main(OpenSearch.java:125)
at org.opensearch.bootstrap.OpenSearch.main(OpenSearch.java:91)
Caused by: java.lang.IllegalStateException: failed to load plugin class [org.opensearch.security.OpenSearchSecurityPlugin]
at org.opensearch.plugins.PluginsService.loadPlugin(PluginsService.java:928)
at org.opensearch.plugins.PluginsService.loadBundle(PluginsService.java:870)
at org.opensearch.plugins.PluginsService.loadBundles(PluginsService.java:653)
at org.opensearch.plugins.PluginsService.<init>(PluginsService.java:227)
at org.opensearch.node.Node.<init>(Node.java:567)
at org.opensearch.node.Node.<init>(Node.java:495)
at org.opensearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:252)
at org.opensearch.bootstrap.Bootstrap.setup(Bootstrap.java:252)
at org.opensearch.bootstrap.Bootstrap.init(Bootstrap.java:414)
at org.opensearch.bootstrap.OpenSearch.init(OpenSearch.java:168)
... 6 more
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:74)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
at org.opensearch.plugins.PluginsService.loadPlugin(PluginsService.java:919)
... 15 more
Caused by: OpenSearchException[No SSL configuration found]
at org.opensearch.security.ssl.SslSettingsManager.loadConfigurations(SslSettingsManager.java:145)
at org.opensearch.security.ssl.SslSettingsManager.buildSslContexts(SslSettingsManager.java:103)
at org.opensearch.security.ssl.SslSettingsManager.<init>(SslSettingsManager.java:86)
at org.opensearch.security.ssl.OpenSearchSecuritySSLPlugin.<init>(OpenSearchSecuritySSLPlugin.java:229)
at org.opensearch.security.OpenSearchSecurityPlugin.<init>(OpenSearchSecurityPlugin.java:384)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
... 18 more
Configuration:
/etc/opensearch/opensearch.yml
# ======================== OpenSearch Configuration =========================
#
# NOTE: OpenSearch comes with reasonable defaults for most settings.
# Before you set out to tweak and tune the configuration, make sure you
# understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please consult the documentation for further information on configuration options:
# https://www.opensearch.org
#
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
#cluster.name: my-application
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
#node.name: node-1
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /var/lib/opensearch
#
# Path to log files:
#
path.logs: /var/log/opensearch
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# OpenSearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
#network.host: 192.168.0.1
#
# Set a custom port for HTTP:
#
#http.port: 9200
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
#discovery.seed_hosts: ["host1", "host2"]
#
# Bootstrap the cluster using an initial set of cluster-manager-eligible nodes:
#
#cluster.initial_cluster_manager_nodes: ["node-1", "node-2"]
#
# For more information, consult the discovery and cluster formation module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
#gateway.recover_after_data_nodes: 3
#
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true
#
# ---------------------------------- Remote Store -----------------------------------
# Controls whether cluster imposes index creation only with remote store enabled
# cluster.remote_store.enabled: true
#
# Repository to use for segment upload while enforcing remote store for an index
# node.attr.remote_store.segment.repository: my-repo-1
#
# Repository to use for translog upload while enforcing remote store for an index
# node.attr.remote_store.translog.repository: my-repo-1
#
# ---------------------------------- Experimental Features -----------------------------------
# Gates the visibility of the experimental segment replication features until they are production ready.
#
#opensearch.experimental.feature.segment_replication_experimental.enabled: false
#
# Gates the functionality of a new parameter to the snapshot restore API
# that allows for creation of a new index type that searches a snapshot
# directly in a remote repository without restoring all index data to disk
# ahead of time.
#
#opensearch.experimental.feature.searchable_snapshot.enabled: false
#
#
# Gates the functionality of enabling extensions to work with OpenSearch.
# This feature enables applications to extend features of OpenSearch outside of
# the core.
#
#opensearch.experimental.feature.extensions.enabled: false
#
#
# Gates the optimization of datetime formatters caching along with change in default datetime formatter
# Once there is no observed impact on performance, this feature flag can be removed.
#
#opensearch.experimental.optimization.datetime_formatter_caching.enabled: false
/etc/opensearch/jvm.options
## JVM configuration
################################################################
## IMPORTANT: JVM heap size
################################################################
##
## You should always set the min and max JVM heap
## size to the same value. For example, to set
## the heap to 4 GB, set:
##
## -Xms4g
## -Xmx4g
##
## See https://opensearch.org/docs/opensearch/install/important-settings/
## for more information
##
################################################################
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms1g
-Xmx1g
################################################################
## Expert settings
################################################################
##
## All settings below this section are considered
## expert settings. Don't tamper with them unless
## you understand what you are doing
##
################################################################
## GC configuration
8-10:-XX:+UseConcMarkSweepGC
8-10:-XX:CMSInitiatingOccupancyFraction=75
8-10:-XX:+UseCMSInitiatingOccupancyOnly
## G1GC Configuration
# NOTE: G1GC is the default GC for all JDKs 11 and newer
11-:-XX:+UseG1GC
# See https://github.com/elastic/elasticsearch/pull/46169 for the history
# behind these settings, but the tl;dr is that default values can lead
# to situations where heap usage grows enough to trigger a circuit breaker
# before GC kicks in.
11-:-XX:G1ReservePercent=25
11-:-XX:InitiatingHeapOccupancyPercent=30
## JVM temporary directory
-Djava.io.tmpdir=/var/lib/opensearch/tmp
## heap dumps
# generate a heap dump when an allocation from the Java heap fails
# heap dumps are created in the working directory of the JVM
-XX:+HeapDumpOnOutOfMemoryError
# specify an alternative path for heap dumps; ensure the directory exists and
# has sufficient space
-XX:HeapDumpPath=/var/lib/opensearch
# specify an alternative path for JVM fatal error logs
-XX:ErrorFile=/var/log/opensearch/hs_err_pid%p.log
## JDK 8 GC logging
8:-XX:+PrintGCDetails
8:-XX:+PrintGCDateStamps
8:-XX:+PrintTenuringDistribution
8:-XX:+PrintGCApplicationStoppedTime
8:-Xloggc:/var/log/opensearch/gc.log
8:-XX:+UseGCLogFileRotation
8:-XX:NumberOfGCLogFiles=32
8:-XX:GCLogFileSize=64m
# JDK 9+ GC logging
9-:-Xlog:gc*,gc+age=trace,safepoint:file=/var/log/opensearch/gc.log:utctime,pid,tags:filecount=32,filesize=64m
# JDK 20+ Incubating Vector Module for SIMD optimizations;
# disabling may reduce performance on vector optimized lucene
20-:--add-modules=jdk.incubator.vector
# See please https://bugs.openjdk.org/browse/JDK-8341127 (openjdk/jdk#21283)
23:-XX:CompileCommand=dontinline,java/lang/invoke/MethodHandle.setAsTypeCache
23:-XX:CompileCommand=dontinline,java/lang/invoke/MethodHandle.asTypeUncached
21-:-javaagent:agent/opensearch-agent.jar
21-:--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED
# For cases with high memory-mapped file counts, a lower value can improve stability and
# prevent issues like "leaked" maps or performance degradation. A value of 1 effectively
# disables the shared Arena pooling and uses a confined Arena for each MMapDirectory
-Dorg.apache.lucene.store.MMapDirectory.sharedArenaMaxPermits=1
25-:-XX:+UseCompactObjectHeaders
What I need to do so it start?