Unable to start opensearch-dashboards

Versions (relevant - OpenSearch/Dashboard/Server OS/Browser):
I am using version 3.0.0 2.19.1of both Opensearch and Opensearch-dashboards. The Opensearch config is minimal changes to allow it to start. What changes are there needed to dashboards config, because I have not been able to get it to start. Thanks.

Describe the issue:

Configuration:

Relevant Logs or Screenshots:

1 Like

@danrk Can you provide the configuration you are using for both OpenSearch and OpenSearch Dashboards. And also any errors you are seeing in the logs.

1 Like

hello. The config for Opensearch is minimal changes to get it to start:

jvm.options for 16GB RAM:

-Xms8g
-Xmx8g

opensearch.yml

network.host: 0.0.0.0
discovery-type: single-node

So Opensearch starts without issues, there are some warnings for other things but it works and responds to API calls with curl

for opensearch-dashboards, I am making no changes to the config file. Please let me know if there are mandatory changes, because the documentation is not clear IMO.
here is the parts of logs that indicates problems:

Jun 07 11:02:40 node-0.example.com opensearch-dashboards[3570]: /usr/share/opensearch-dashboards/bin/use_node: line 100: /usr/share/opensearch-dashboards/node/fallback/bin/node: Operation not permitted
Jun 07 11:02:40 node-0.example.com opensearch-dashboards[3570]: /usr/share/opensearch-dashboards/bin/use_node: line 100: /usr/share/opensearch-dashboards/node/fallback/bin/node: Success
Jun 07 11:02:40 node-0.example.com systemd[1]: opensearch-dashboards.service: Main process exited, code=exited, status=126/n/a
Jun 07 11:02:40 node-0.example.com systemd[1]: opensearch-dashboards.service: Failed with result ‘exit-code’.

1 Like

@danrk How are you running the OSD? Is this an AWS managed service? Or you are running locally via docker-compose for example

1 Like

VM in Proxmox with both opensearch and OSD installed

1 Like

@danrk I haven’t tried this on Proxmox yet, but can you provide your OSD yaml file?

1 Like
---
# Copyright OpenSearch Contributors
# SPDX-License-Identifier: Apache-2.0

# Description:
# Default configuration for OpenSearch Dashboards

# OpenSearch Dashboards is served by a back end server. This setting specifies the port to use.
# server.port: 5601

# Specifies the address to which the OpenSearch Dashboards server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
# server.host: "localhost"

# Enables you to specify a path to mount OpenSearch Dashboards at if you are running behind a proxy.
# Use the `server.rewriteBasePath` setting to tell OpenSearch Dashboards if it should remove the basePath
# from requests it receives, and to prevent a deprecation warning at startup.
# This setting cannot end in a slash.
# server.basePath: ""

# Specifies whether OpenSearch Dashboards should rewrite requests that are prefixed with
# `server.basePath` or require that they are rewritten by your reverse proxy.
# server.rewriteBasePath: false

# The maximum payload size in bytes for incoming server requests.
# server.maxPayloadBytes: 1048576

# The OpenSearch Dashboards server's name.  This is used for display purposes.
# server.name: "your-hostname"

# The URLs of the OpenSearch instances to use for all your queries.
# opensearch.hosts: ["http://localhost:9200"]

# OpenSearch Dashboards uses an index in OpenSearch to store saved searches, visualizations and
# dashboards. OpenSearch Dashboards creates a new index if the index doesn't already exist.
# opensearchDashboards.index: ".opensearch_dashboards"

# The default application to load.
# opensearchDashboards.defaultAppId: "home"

# Setting for an optimized healthcheck that only uses the local OpenSearch node to do Dashboards healthcheck.
# This settings should be used for large clusters or for clusters with ingest heavy nodes.
# It allows Dashboards to only healthcheck using the local OpenSearch node rather than fan out requests across all nodes.
#
# It requires the user to create an OpenSearch node attribute with the same name as the value used in the setting
# This node attribute should assign all nodes of the same cluster an integer value that increments with each new cluster that is spun up
# e.g. in opensearch.yml file you would set the value to a setting using node.attr.cluster_id:
# Should only be enabled if there is a corresponding node attribute created in your OpenSearch config that matches the value here
# opensearch.optimizedHealthcheckId: "cluster_id"

# If your OpenSearch is protected with basic authentication, these settings provide
# the username and password that the OpenSearch Dashboards server uses to perform maintenance on the OpenSearch Dashboards
# index at startup. Your OpenSearch Dashboards users still need to authenticate with OpenSearch, which
# is proxied through the OpenSearch Dashboards server.
# opensearch.username: "opensearch_dashboards_system"
# opensearch.password: "pass"

# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively.
# These settings enable SSL for outgoing requests from the OpenSearch Dashboards server to the browser.
# server.ssl.enabled: false
# server.ssl.certificate: /path/to/your/server.crt
# server.ssl.key: /path/to/your/server.key

# Optional settings that provide the paths to the PEM-format SSL certificate and key files.
# These files are used to verify the identity of OpenSearch Dashboards to OpenSearch and are required when
# xpack.security.http.ssl.client_authentication in OpenSearch is set to required.
# opensearch.ssl.certificate: /path/to/your/client.crt
# opensearch.ssl.key: /path/to/your/client.key

# Optional setting that enables you to specify a path to the PEM file for the certificate
# authority for your OpenSearch instance.
# opensearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ]

# To disregard the validity of SSL certificates, change this setting's value to 'none'.
# opensearch.ssl.verificationMode: full

# Time in milliseconds to wait for OpenSearch to respond to pings. Defaults to the value of
# the opensearch.requestTimeout setting.
# opensearch.pingTimeout: 1500

# Time in milliseconds to wait for responses from the back end or OpenSearch. This value
# must be a positive integer.
# opensearch.requestTimeout: 30000

# List of OpenSearch Dashboards client-side headers to send to OpenSearch. To send *no* client-side
# headers, set this value to [] (an empty list).
# opensearch.requestHeadersWhitelist: [ authorization ]

# Header names and values that are sent to OpenSearch. Any custom headers cannot be overwritten
# by client-side headers, regardless of the opensearch.requestHeadersWhitelist configuration.
# opensearch.customHeaders: {}

# Time in milliseconds for OpenSearch to wait for responses from shards. Set to 0 to disable.
# opensearch.shardTimeout: 30000

# Logs queries sent to OpenSearch. Requires logging.verbose set to true.
# opensearch.logQueries: false

# Specifies the path where OpenSearch Dashboards creates the process ID file.
# pid.file: /var/run/opensearchDashboards.pid

# Enables you to specify a file where OpenSearch Dashboards stores log output.
# logging.dest: stdout

# 2.15 Ignore 'ENOSPC' error for logging stream.
# When set to true, the 'ENOSPC' error message will not cause the OpenSearch Dashboards process to crash. Otherwise,
# the original behavior will be maintained. It is disabled by default.
# logging.ignoreEnospcError: false

# Set the value of this setting to true to suppress all logging output.
# logging.silent: false

# Set the value of this setting to true to suppress all logging output other than error messages.
# logging.quiet: false

# Set the value of this setting to true to log all events, including system usage information
# and all requests.
# logging.verbose: false

# Set the interval in milliseconds to sample system and process performance
# metrics. Minimum is 100ms. Defaults to 5000.
# ops.interval: 5000

# Specifies locale to be used for all localizable strings, dates and number formats.
# Supported languages are the following: English - en , by default , Chinese - zh-CN .
# i18n.locale: "en"

# Set the allowlist to check input graphite Url. Allowlist is the default check list.
# vis_type_timeline.graphiteAllowedUrls: ['https://www.hostedgraphite.com/UID/ACCESS_KEY/graphite']

# Set the blocklist to check input graphite Url. Blocklist is an IP list.
# Below is an example for reference
# vis_type_timeline.graphiteBlockedIPs: [
#  //Loopback
#  '127.0.0.0/8',
#  '::1/128',
#  //Link-local Address for IPv6
#  'fe80::/10',
#  //Private IP address for IPv4
#  '10.0.0.0/8',
#  '172.16.0.0/12',
#  '192.168.0.0/16',
#  //Unique local address (ULA)
#  'fc00::/7',
#  //Reserved IP address
#  '0.0.0.0/8',
#  '100.64.0.0/10',
#  '192.0.0.0/24',
#  '192.0.2.0/24',
#  '198.18.0.0/15',
#  '192.88.99.0/24',
#  '198.51.100.0/24',
#  '203.0.113.0/24',
#  '224.0.0.0/4',
#  '240.0.0.0/4',
#  '255.255.255.255/32',
#  '::/128',
#  '2001:db8::/32',
#  'ff00::/8',
# ]
# vis_type_timeline.graphiteBlockedIPs: []

# opensearchDashboards.branding:
#   logo:
#     defaultUrl: ""
#     darkModeUrl: ""
#   mark:
#     defaultUrl: ""
#     darkModeUrl: ""
#   loadingLogo:
#     defaultUrl: ""
#     darkModeUrl: ""
#   faviconUrl: ""
#   applicationTitle: ""

# Set the value of this setting to true to capture region blocked warnings and errors
# for your map rendering services.
# map.showRegionBlockedWarning: false%

# Set the value of this setting to false to suppress search usage telemetry
# for reducing the load of OpenSearch cluster.
# data.search.usageTelemetry.enabled: false

# 2.4 renames 'wizard.enabled: false' to 'vis_builder.enabled: false'
# Set the value of this setting to false to disable VisBuilder
# functionality in Visualization.
# vis_builder.enabled: false

# 2.4 New Experimental Feature
# Set the value of this setting to true to enable the experimental multiple data source
# support feature. Use with caution.
# data_source.enabled: false
# Set the value of these settings to customize crypto materials to encryption saved credentials
# in data sources.
# data_source.encryption.wrappingKeyName: 'changeme'
# data_source.encryption.wrappingKeyNamespace: 'changeme'
# data_source.encryption.wrappingKey: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

# 2.6 New ML Commons Dashboards Feature
# Set the value of this setting to true to enable the ml commons dashboards
# ml_commons_dashboards.enabled: false

# 2.12 New Experimental Assistant Dashboards Feature
# Set the value of this setting to true to enable the assistant dashboards
# assistant.chat.enabled: false

# 2.13 New Query Assistant Feature
# Set the value of this setting to false to disable the query assistant
# observability.query_assist.enabled: false

# 2.14 Enable Ui Metric Collectors in Usage Collector
# Set the value of this setting to true to enable UI Metric collections
# usageCollection.uiMetric.enabled: false

# 2.18 New Experimental Settings
# Set the value to true to enable
# assistant.alertInsight.enabled: false
# assistant.smartAnomalyDetector.enabled: false
# assistant.text2viz.enabled: false
# queryEnhancements.queryAssist.summary.enabled: false

opensearch.hosts: [https://localhost:9200]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanaserver
opensearch.requestHeadersWhitelist: [authorization, securitytenant]

opensearch_security.multitenancy.enabled: true
opensearch_security.multitenancy.tenants.preferred: [Private, Global]
opensearch_security.readonly_mode.roles: [kibana_read_only]
# Use this setting if you are running opensearch-dashboards without https
opensearch_security.cookie.secure: false
1 Like
● opensearch-dashboards.service - "OpenSearch Dashboards"
   Loaded: loaded (/usr/lib/systemd/system/opensearch-dashboards.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Mon 2025-06-16 10:54:43 EDT; 5s ago
  Process: 1929 ExecStart=/usr/share/opensearch-dashboards/bin/opensearch-dashboards (code=exited, status=126)
 Main PID: 1929 (code=exited, status=126)

Jun 16 10:54:43 ol8-server-stig systemd[1]: opensearch-dashboards.service: Service RestartSec=100ms expired, scheduling restart.
Jun 16 10:54:43 ol8-server-stig systemd[1]: opensearch-dashboards.service: Scheduled restart job, restart counter is at 5.
Jun 16 10:54:43 ol8-server-stig systemd[1]: Stopped "OpenSearch Dashboards".
Jun 16 10:54:43 ol8-server-stig systemd[1]: opensearch-dashboards.service: Start request repeated too quickly.
Jun 16 10:54:43 ol8-server-stig systemd[1]: opensearch-dashboards.service: Failed with result 'exit-code'.
Jun 16 10:54:43 ol8-server-stig systemd[1]: Failed to start "OpenSearch Dashboards".
1 Like

this journalctl -xeu opensearch-dashboards

-- Logs begin at Mon 2025-06-16 10:46:08 EDT, end at Mon 2025-06-16 11:01:13 EDT. --
Jun 16 10:54:42 ol8-server-stig systemd[1]: Started "OpenSearch Dashboards".
-- Subject: Unit opensearch-dashboards.service has finished start-up
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- Unit opensearch-dashboards.service has finished starting up.
-- 
-- The start-up result is done.
Jun 16 10:54:42 ol8-server-stig opensearch-dashboards[1873]: /usr/share/opensearch-dashboards/bin/use_node: line 100: /usr/share/opensearch-dashboards/node/fallback/bin/node: Operation not permitted
Jun 16 10:54:42 ol8-server-stig opensearch-dashboards[1873]: /usr/share/opensearch-dashboards/bin/use_node: line 100: /usr/share/opensearch-dashboards/node/fallback/bin/node: Success
Jun 16 10:54:42 ol8-server-stig systemd[1]: opensearch-dashboards.service: Main process exited, code=exited, status=126/n/a
Jun 16 10:54:42 ol8-server-stig systemd[1]: opensearch-dashboards.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- The unit opensearch-dashboards.service has entered the 'failed' state with result 'exit-code'.
Jun 16 10:54:42 ol8-server-stig systemd[1]: opensearch-dashboards.service: Service RestartSec=100ms expired, scheduling restart.
Jun 16 10:54:42 ol8-server-stig systemd[1]: opensearch-dashboards.service: Scheduled restart job, restart counter is at 1.
-- Subject: Automatic restarting of a unit has been scheduled
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- Automatic restarting of the unit opensearch-dashboards.service has been scheduled, as the result for
-- the configured Restart= setting for the unit.
Jun 16 10:54:42 ol8-server-stig systemd[1]: Stopped "OpenSearch Dashboards".
-- Subject: Unit opensearch-dashboards.service has finished shutting down
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- Unit opensearch-dashboards.service has finished shutting down.
Jun 16 10:54:42 ol8-server-stig systemd[1]: Started "OpenSearch Dashboards".
-- Subject: Unit opensearch-dashboards.service has finished start-up
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- Unit opensearch-dashboards.service has finished starting up.
-- 
-- The start-up result is done.
Jun 16 10:54:42 ol8-server-stig opensearch-dashboards[1887]: /usr/share/opensearch-dashboards/bin/use_node: line 100: /usr/share/opensearch-dashboards/node/fallback/bin/node: Operation not permitted
Jun 16 10:54:42 ol8-server-stig opensearch-dashboards[1887]: /usr/share/opensearch-dashboards/bin/use_node: line 100: /usr/share/opensearch-dashboards/node/fallback/bin/node: Success
Jun 16 10:54:42 ol8-server-stig systemd[1]: opensearch-dashboards.service: Main process exited, code=exited, status=126/n/a
Jun 16 10:54:42 ol8-server-stig systemd[1]: opensearch-dashboards.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- The unit opensearch-dashboards.service has entered the 'failed' state with result 'exit-code'.
Jun 16 10:54:42 ol8-server-stig systemd[1]: opensearch-dashboards.service: Service RestartSec=100ms expired, scheduling restart.
Jun 16 10:54:42 ol8-server-stig systemd[1]: opensearch-dashboards.service: Scheduled restart job, restart counter is at 2.
-- Subject: Automatic restarting of a unit has been scheduled
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- Automatic restarting of the unit opensearch-dashboards.service has been scheduled, as the result for
-- the configured Restart= setting for the unit.
Jun 16 10:54:42 ol8-server-stig systemd[1]: Stopped "OpenSearch Dashboards".
-- Subject: Unit opensearch-dashboards.service has finished shutting down
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- Unit opensearch-dashboards.service has finished shutting down.
Jun 16 10:54:42 ol8-server-stig systemd[1]: Started "OpenSearch Dashboards".
-- Subject: Unit opensearch-dashboards.service has finished start-up
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- Unit opensearch-dashboards.service has finished starting up.
-- 
-- The start-up result is done.
Jun 16 10:54:42 ol8-server-stig opensearch-dashboards[1901]: /usr/share/opensearch-dashboards/bin/use_node: line 100: /usr/share/opensearch-dashboards/node/fallback/bin/node: Operation not permitted
Jun 16 10:54:42 ol8-server-stig opensearch-dashboards[1901]: /usr/share/opensearch-dashboards/bin/use_node: line 100: /usr/share/opensearch-dashboards/node/fallback/bin/node: Success
Jun 16 10:54:42 ol8-server-stig systemd[1]: opensearch-dashboards.service: Main process exited, code=exited, status=126/n/a
Jun 16 10:54:42 ol8-server-stig systemd[1]: opensearch-dashboards.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- The unit opensearch-dashboards.service has entered the 'failed' state with result 'exit-code'.
Jun 16 10:54:42 ol8-server-stig systemd[1]: opensearch-dashboards.service: Service RestartSec=100ms expired, scheduling restart.
Jun 16 10:54:42 ol8-server-stig systemd[1]: opensearch-dashboards.service: Scheduled restart job, restart counter is at 3.
-- Subject: Automatic restarting of a unit has been scheduled
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- Automatic restarting of the unit opensearch-dashboards.service has been scheduled, as the result for
-- the configured Restart= setting for the unit.
Jun 16 10:54:42 ol8-server-stig systemd[1]: Stopped "OpenSearch Dashboards".
-- Subject: Unit opensearch-dashboards.service has finished shutting down
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- Unit opensearch-dashboards.service has finished shutting down.
Jun 16 10:54:42 ol8-server-stig systemd[1]: Started "OpenSearch Dashboards".
-- Subject: Unit opensearch-dashboards.service has finished start-up
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- Unit opensearch-dashboards.service has finished starting up.
-- 
-- The start-up result is done.
Jun 16 10:54:42 ol8-server-stig opensearch-dashboards[1915]: /usr/share/opensearch-dashboards/bin/use_node: line 100: /usr/share/opensearch-dashboards/node/fallback/bin/node: Operation not permitted
Jun 16 10:54:42 ol8-server-stig opensearch-dashboards[1915]: /usr/share/opensearch-dashboards/bin/use_node: line 100: /usr/share/opensearch-dashboards/node/fallback/bin/node: Success
Jun 16 10:54:42 ol8-server-stig systemd[1]: opensearch-dashboards.service: Main process exited, code=exited, status=126/n/a
Jun 16 10:54:42 ol8-server-stig systemd[1]: opensearch-dashboards.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- The unit opensearch-dashboards.service has entered the 'failed' state with result 'exit-code'.
Jun 16 10:54:43 ol8-server-stig systemd[1]: opensearch-dashboards.service: Service RestartSec=100ms expired, scheduling restart.
Jun 16 10:54:43 ol8-server-stig systemd[1]: opensearch-dashboards.service: Scheduled restart job, restart counter is at 4.
-- Subject: Automatic restarting of a unit has been scheduled
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- Automatic restarting of the unit opensearch-dashboards.service has been scheduled, as the result for
-- the configured Restart= setting for the unit.
Jun 16 10:54:43 ol8-server-stig systemd[1]: Stopped "OpenSearch Dashboards".
-- Subject: Unit opensearch-dashboards.service has finished shutting down
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- Unit opensearch-dashboards.service has finished shutting down.
Jun 16 10:54:43 ol8-server-stig systemd[1]: Started "OpenSearch Dashboards".
-- Subject: Unit opensearch-dashboards.service has finished start-up
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- Unit opensearch-dashboards.service has finished starting up.
-- 
-- The start-up result is done.
Jun 16 10:54:43 ol8-server-stig opensearch-dashboards[1929]: /usr/share/opensearch-dashboards/bin/use_node: line 100: /usr/share/opensearch-dashboards/node/fallback/bin/node: Operation not permitted
Jun 16 10:54:43 ol8-server-stig opensearch-dashboards[1929]: /usr/share/opensearch-dashboards/bin/use_node: line 100: /usr/share/opensearch-dashboards/node/fallback/bin/node: Success
Jun 16 10:54:43 ol8-server-stig systemd[1]: opensearch-dashboards.service: Main process exited, code=exited, status=126/n/a
Jun 16 10:54:43 ol8-server-stig systemd[1]: opensearch-dashboards.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- The unit opensearch-dashboards.service has entered the 'failed' state with result 'exit-code'.
Jun 16 10:54:43 ol8-server-stig systemd[1]: opensearch-dashboards.service: Service RestartSec=100ms expired, scheduling restart.
Jun 16 10:54:43 ol8-server-stig systemd[1]: opensearch-dashboards.service: Scheduled restart job, restart counter is at 5.
-- Subject: Automatic restarting of a unit has been scheduled
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- Automatic restarting of the unit opensearch-dashboards.service has been scheduled, as the result for
-- the configured Restart= setting for the unit.
Jun 16 10:54:43 ol8-server-stig systemd[1]: Stopped "OpenSearch Dashboards".
-- Subject: Unit opensearch-dashboards.service has finished shutting down
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- Unit opensearch-dashboards.service has finished shutting down.
Jun 16 10:54:43 ol8-server-stig systemd[1]: opensearch-dashboards.service: Start request repeated too quickly.
Jun 16 10:54:43 ol8-server-stig systemd[1]: opensearch-dashboards.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- The unit opensearch-dashboards.service has entered the 'failed' state with result 'exit-code'.
Jun 16 10:54:43 ol8-server-stig systemd[1]: Failed to start "OpenSearch Dashboards".
-- Subject: Unit opensearch-dashboards.service has failed
-- Defined-By: systemd
-- Support: https://support.oracle.com
-- 
-- Unit opensearch-dashboards.service has failed.
-- 
-- The result is failed.

@danrk can you surround your configuration in code brackets, as its not possible to read which configuration is a comment.

Also, can you verify the user “opensearch_dashboards_system” exists and the password is correct. You can use curl verify this.

The basic opensearch configuration looks like this:

server.name: kibana
server.host: "0.0.0.0"
server.customResponseHeaders : { "Access-Control-Allow-Credentials" : "true" }
server.ssl.enabled: false

opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanaserver
opensearch.requestHeadersWhitelist: ["securitytenant","Authorization"]

opensearch_security.multitenancy.enabled: true
opensearch_security.multitenancy.tenants.preferred: ["Private", "Global"]
opensearch_security.readonly_mode.roles: ["kibana_read_only"]

seems to be formatted better now, let me know if still an issue.

here is the uncommented portion of opensearch_dashboards.yml

opensearch.hosts: [https://localhost:9200]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanaserver
opensearch.requestHeadersWhitelist: [authorization, securitytenant]

opensearch_security.multitenancy.enabled: true
opensearch_security.multitenancy.tenants.preferred: [Private, Global]
opensearch_security.readonly_mode.roles: [kibana_read_only]
opensearch_security.cookie.secure: false

here is evidence of kibanaserver user working

[root@ol8-server-stig opensearch-dashboards]# curl -ku kibanaserver https://localhost:9200
Enter host password for user ‘kibanaserver’:
{
“name” : “ol8-server-stig”,
“cluster_name” : “opensearch”,
“cluster_uuid” : “w2zzaXyeSM20_hDq6zYshA”,
“version” : {
“distribution” : “opensearch”,
“number” : “2.19.1”,
“build_type” : “rpm”,
“build_hash” : “2e4741fb45d1b150aaeeadf66d41445b23ff5982”,
“build_date” : “2025-02-27T01:16:53.890803852Z”,
“build_snapshot” : false,
“lucene_version” : “9.12.1”,
“minimum_wire_compatibility_version” : “7.10.0”,
“minimum_index_compatibility_version” : “7.0.0”
},
“tagline” : “The OpenSearch Project: https://opensearch.org/”
}

also made the edit on my initial post to say I am using 2.19.1, not 3.0.0

also want to mention that the OS is Oracle Linux 8.10 with DISA STIG Security Policy

@danrk this would appear to be a permission issue on the host based on the below log line:

/usr/share/opensearch-dashboards/bin/use_node: line 100: /usr/share/opensearch-dashboards/node/fallback/bin/node: Operation not permitted

You can try to check if the Node binary is executable, and add the permission is necessary.

Also, you can test temporary by setting SELinux to Permissive:

setenforce 0

and restarting dashboards.

file is executable and Permissive SELinux does not change the fact that it doesn't start. I checked alerts with "sealert -l "*" and there are only 3 things none opensearch

[root@ol8-server-stig bin]# ls -l /usr/share/opensearch-dashboards/node/fallback/bin/node
-rwxr-xr-x. 1 root root 75438256 Feb 27 03:00 /usr/share/opensearch-dashboards/node/fallback/bin/node
[root@ol8-server-stig bin]# file node
node: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=6dfa0c0806d4037b29fd0f6c42d90182abed065d, with debug_info, not stripped

I appreciate your time and effort for all this, thank you

ok, I set fapolicyd.conf permissive=1 and it works

now, does anybody know the exact fapolicy change to allow opensearch-dashboards?