Unable to launch Opensearch dashboard

Following is the journal error.

Describe the issue:

Hi All,

My Opensearch Dashboard version 2.11.1 installed in the Opensearch server unable access.
Kindly assist to investigate what might went wrong

Configuration:

Relevant Logs or Screenshots:
– Logs begin at Tue 2025-02-25 04:11:07 UTC. –

Mar 29 11:46:25 opensearchdb opensearch-dashboards[3329479]: {"type":"log","@timestamp":"2025-03-29T11:46:25Z","tags":["fatal","root"],"pid":3329479,"message":"ValidationError: [config validation of [opensearch].ssl.verificationMode]: types that failed validation:\n- [config validation of [opensearch].ssl.verificationMode.0]: expected value to equal [none]\n- [config validation of [opensearch].ssl.verificationMode.1]: expected value to equal [certificate]\n- [config validation of [opensearch].ssl.verificationMode.2]: expected value to equal [full]\n    at ObjectType.validate (/usr/share/opensearch-dashboards/node_modules/@osd/config-schema/target/out/types/type.js:72:19)\n    at ConfigService.validateAtPath (/usr/share/opensearch-dashboards/node_modules/@osd/config/target/config_service.js:157:23)\n    ... 2 lines matching cause stack trace ...\n    at MapSubscriber.Subscriber.next (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/Subscriber.js:66:18)\n    at DistinctUntilChangedSubscriber._next (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/operators/distinctUntilChanged.js:69:30)\n    at DistinctUntilChangedSubscriber.Subscriber.next (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/Subscriber.js:66:18)\n    at MapSubscriber._next (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/operators/map.js:55:26)\n    at MapSubscriber.Subscriber.next (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/Subscriber.js:66:18)\n    at ReplaySubject._subscribe (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/ReplaySubject.js:80:28)\n    at ReplaySubject.Observable._trySubscribe (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/Observable.js:44:25)\n    at ReplaySubject.Subject._trySubscribe (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/Subject.js:102:51)\n    at ReplaySubject.Observable.subscribe (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/Observable.js:30:22)\n    at MapSubscriber.shareReplayOperation (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/operators/shareReplay.js:53:32)\n    at Observable.subscribe (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/Observable.js:25:31)\n    at MapOperator.call (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/operators/map.js:32:23) {\n  cause: SchemaTypesError: types that failed validation:\n      at UnionType.handleError (/usr/share/opensearch-dashboards/node_modules/@osd/config-schema/target/out/types/union_type.js:47:24)\n      at UnionType.onError (/usr/share/opensearch-dashboards/node_modules/@osd/config-schema/target/out/types/type.js:90:40)\n      at internals.Alternatives.<anonymous> (/usr/share/opensearch-dashboards/node_modules/@osd/config-schema/target/out/types/type.js:62:53)\n      at internals.Alternatives._finalizeValue (/usr/share/opensearch-dashboards/node_modules/joi/lib/types/any/index.js:733:46)\n      at internals.Alternatives._validate (/usr/share/opensearch-dashboards/node_modules/joi/lib/types/any/index.js:641:29)\n      at type._base (/usr/share/opensearch-dashboards/node_modules/joi/lib/types/object/index.js:213:45)\n      at type._validate (/usr/share/opensearch-dashboards/node_modules/joi/lib/types/any/index.js:637:31)\n      at type._base (/usr/share/opensearch-dashboards/node_modules/joi/lib/types/object/index.js:213:45)\n      at type._validate (/usr/share/opensearch-dashboards/node_modules/joi/lib/types/any/index.js:637:31)\n      at type._validateWithOptions (/usr/share/opensearch-dashboards/node_modules/joi/lib/types/any/index.js:763:29)\n      at module.exports.internals.Any.root.validate (/usr/share/opensearch-dashboards/node_modules/joi/lib/index.js:147:23)\n      at ObjectType.validate (/usr/share/opensearch-dashboards/node_modules/@osd/config-schema/target/out/types/type.js:67:72)\n      at ConfigService.validateAtPath (/usr/share/opensearch-dashboards/node_modules/@osd/config/target/config_service.js:157:23)\n      at MapSubscriber.project (/usr/share/opensearch-dashboards/node_modules/@osd/config/target/config_service.js:164:83)\n      at MapSubscriber._next (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/operators/map.js:49:35)\n      at MapSubscriber.Subscriber.next (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/Subscriber.js:66:18) {\n    cause: undefined,\n    path: [ 'ssl', 'verificationMode' ],\n    errors: [ [SchemaTypeError], [SchemaTypeError], [SchemaTypeError] ]\n  }\n}"}
Mar 29 11:46:25 opensearchdb opensearch-dashboards[3329479]:  FATAL  ValidationError: [config validation of [opensearch].ssl.verificationMode]: types that failed validation:
Mar 29 11:46:25 opensearchdb opensearch-dashboards[3329479]: - [config validation of [opensearch].ssl.verificationMode.0]: expected value to equal [none]
Mar 29 11:46:25 opensearchdb opensearch-dashboards[3329479]: - [config validation of [opensearch].ssl.verificationMode.1]: expected value to equal [certificate]
Mar 29 11:46:25 opensearchdb opensearch-dashboards[3329479]: - [config validation of [opensearch].ssl.verificationMode.2]: expected value to equal [full]
Mar 29 11:46:25 opensearchdb systemd[1]: opensearch-dashboards.service: Main process exited, code=exited, status=1/FAILURE
Mar 29 11:46:25 opensearchdb systemd[1]: opensearch-dashboards.service: Failed with result 'exit-code'.
Mar 29 11:46:26 opensearchdb systemd[1]: opensearch-dashboards.service: Scheduled restart job, restart counter is at 3.
Mar 29 11:46:26 opensearchdb systemd[1]: Stopped "OpenSearch Dashboards".
Mar 29 11:46:26 opensearchdb systemd[1]: Started "OpenSearch Dashboards".
Mar 29 11:46:28 opensearchdb opensearch-dashboards[3329503]: {"type":"log","@timestamp":"2025-03-29T11:46:28Z","tags":["info","plugins-service"],"pid":3329503,"message":"Plugin \"dataSourceManagement\" has been disabled since the following direct or transitive dependencies are missing or disabled: [dataSource]"}
Mar 29 11:46:28 opensearchdb opensearch-dashboards[3329503]: {"type":"log","@timestamp":"2025-03-29T11:46:28Z","tags":["info","plugins-service"],"pid":3329503,"message":"Plugin \"dataSource\" is disabled."}
Mar 29 11:46:28 opensearchdb opensearch-dashboards[3329503]: {"type":"log","@timestamp":"2025-03-29T11:46:28Z","tags":["info","plugins-service"],"pid":3329503,"message":"Plugin \"visTypeXy\" is disabled."}
Mar 29 11:46:28 opensearchdb opensearch-dashboards[3329503]: {"type":"log","@timestamp":"2025-03-29T11:46:28Z","tags":["fatal","root"],"pid":3329503,"message":"ValidationError: [config validation of [opensearch].ssl.verificationMode]: types that failed validation:\n- [config validation of [opensearch].ssl.verificationMode.0]: expected value to equal [none]\n- [config validation of [opensearch].ssl.verificationMode.1]: expected value to equal [certificate]\n- [config validation of [opensearch].ssl.verificationMode.2]: expected value to equal [full]\n    at ObjectType.validate (/usr/share/opensearch-dashboards/node_modules/@osd/config-schema/target/out/types/type.js:72:19)\n    at ConfigService.validateAtPath (/usr/share/opensearch-dashboards/node_modules/@osd/config/target/config_service.js:157:23)\n    ... 2 lines matching cause stack trace ...\n    at MapSubscriber.Subscriber.next (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/Subscriber.js:66:18)\n    at DistinctUntilChangedSubscriber._next (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/operators/distinctUntilChanged.js:69:30)\n    at DistinctUntilChangedSubscriber.Subscriber.next (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/Subscriber.js:66:18)\n    at MapSubscriber._next (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/operators/map.js:55:26)\n    at MapSubscriber.Subscriber.next (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/Subscriber.js:66:18)\n    at ReplaySubject._subscribe (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/ReplaySubject.js:80:28)\n    at ReplaySubject.Observable._trySubscribe (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/Observable.js:44:25)\n    at ReplaySubject.Subject._trySubscribe (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/Subject.js:102:51)\n    at ReplaySubject.Observable.subscribe (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/Observable.js:30:22)\n    at MapSubscriber.shareReplayOperation (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/operators/shareReplay.js:53:32)\n    at Observable.subscribe (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/Observable.js:25:31)\n    at MapOperator.call (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/operators/map.js:32:23) {\n  cause: SchemaTypesError: types that failed validation:\n      at UnionType.handleError (/usr/share/opensearch-dashboards/node_modules/@osd/config-schema/target/out/types/union_type.js:47:24)\n      at UnionType.onError (/usr/share/opensearch-dashboards/node_modules/@osd/config-schema/target/out/types/type.js:90:40)\n      at internals.Alternatives.<anonymous> (/usr/share/opensearch-dashboards/node_modules/@osd/config-schema/target/out/types/type.js:62:53)\n      at internals.Alternatives._finalizeValue (/usr/share/opensearch-dashboards/node_modules/joi/lib/types/any/index.js:733:46)\n      at internals.Alternatives._validate (/usr/share/opensearch-dashboards/node_modules/joi/lib/types/any/index.js:641:29)\n      at type._base (/usr/share/opensearch-dashboards/node_modules/joi/lib/types/object/index.js:213:45)\n      at type._validate (/usr/share/opensearch-dashboards/node_modules/joi/lib/types/any/index.js:637:31)\n      at type._base (/usr/share/opensearch-dashboards/node_modules/joi/lib/types/object/index.js:213:45)\n      at type._validate (/usr/share/opensearch-dashboards/node_modules/joi/lib/types/any/index.js:637:31)\n      at type._validateWithOptions (/usr/share/opensearch-dashboards/node_modules/joi/lib/types/any/index.js:763:29)\n      at module.exports.internals.Any.root.validate (/usr/share/opensearch-dashboards/node_modules/joi/lib/index.js:147:23)\n      at ObjectType.validate (/usr/share/opensearch-dashboards/node_modules/@osd/config-schema/target/out/types/type.js:67:72)\n      at ConfigService.validateAtPath (/usr/share/opensearch-dashboards/node_modules/@osd/config/target/config_service.js:157:23)\n      at MapSubscriber.project (/usr/share/opensearch-dashboards/node_modules/@osd/config/target/config_service.js:164:83)\n      at MapSubscriber._next (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/operators/map.js:49:35)\n      at MapSubscriber.Subscriber.next (/usr/share/opensearch-dashboards/node_modules/rxjs/internal/Subscriber.js:66:18) {\n    cause: undefined,\n    path: [ 'ssl', 'verificationMode' ],\n    errors: [ [SchemaTypeError], [SchemaTypeError], [SchemaTypeError] ]\n  }\n}"}
Mar 29 11:46:28 opensearchdb opensearch-dashboards[3329503]:  FATAL  ValidationError: [config validation of [opensearch].ssl.verificationMode]: types that failed validation:
Mar 29 11:46:28 opensearchdb opensearch-dashboards[3329503]: - [config validation of [opensearch].ssl.verificationMode.0]: expected value to equal [none]
Mar 29 11:46:28 opensearchdb opensearch-dashboards[3329503]: - [config validation of [opensearch].ssl.verificationMode.1]: expected value to equal [certificate]
Mar 29 11:46:28 opensearchdb opensearch-dashboards[3329503]: - [config validation of [opensearch].ssl.verificationMode.2]: expected value to equal [full]
Mar 29 11:46:28 opensearchdb systemd[1]: opensearch-dashboards.service: Main process exited, code=exited, status=1/FAILURE
Mar 29 11:46:28 opensearchdb systemd[1]: opensearch-dashboards.service: Failed with result 'exit-code'.
Mar 29 11:46:29 opensearchdb systemd[1]: opensearch-dashboards.service: Scheduled restart job, restart counter is at 4.
Mar 29 11:46:29 opensearchdb systemd[1]: Stopped "OpenSearch Dashboards".
Mar 29 11:46:29 opensearchdb systemd[1]: Started "OpenSearch Dashboards".

Hi,

Anyone can assist me?

Thanks,
Yuga

Hi @Yugathiswaran. As per your shared logs, OpenSearch Dashboards fails to start due to incorrect configuration in opensearch_dashboards.yml

config validation of [opensearch].ssl.verificationMode]: 

Could you share your opensearch_dashboards.yml file?

Hi Pablo,

I can share the opensearch_dashboards.yml file but what might be the issue here?

Thanks,
Yuga

Hi Pablo,

May I ask why am I still getting the following error.


For the config how could I provide you.

Thanks,
Yuga

Hi Pablo,

Below is the details of the service that is running.


When I tried access the IP address it unable to access.
It is showing the following error.

Thanks,
Yuga

As per your shared OpenSearch Dashboards log, opensearch_dsahboards.yml is misconfigured. The error refers to the value of opensearch.ssl.verificationMode.

Please share your opensearch_dashboards.yml. Please hide all sensitive information.

Hi Pablo,

Yup had hide the relevant information.

Kindly check and advise me if anything is wrong.

---

# 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: 5671

# 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: "0.0.0.0"

# 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: ["https://0.0.0.0:5671"]

# 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

# 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

opensearch.hosts: [https://172.169.85.94:5671]

opensearch.ssl.verificationMode: true

opensearch.username: "trance"

opensearch.password: "solivite@`1"

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: true

Thanks,

Yuga

According to your opensearch_dashboards.yml, you’ve set opensearch.ssl.veryificationMode with value true.

This is incorrect as this option accepts only the following values.

  • none
  • certificate
  • full

You’ve got exactly the same error in your initial logs.
Please start with none. When you decide to use certificate authentication between OpenSearch and OpenSearch Dashboards then you can switch to certificate or full.

Hi Pablo,

I had changed to none but it is showing me as below.
opensearch-dashboards.service - “OpenSearch Dashboards”
Loaded: loaded (/lib/systemd/system/opensearch-dashboards.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2025-05-05 13:54:14 UTC; 48s ago
Main PID: 2084533 (node)
Tasks: 11 (limit: 114920)
Memory: 122.5M
CGroup: /system.slice/opensearch-dashboards.service
└─2084533 /usr/share/opensearch-dashboards/node/bin/node /usr/share/opensearch-dashboards/src/cli/dist

May 05 13:54:39 opensearchdb opensearch-dashboards[2084533]: {“type”:“log”,“@timestamp”:“2025-05-05T13:54:39Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:2084533,“message”:“[ResponseError]: Response Error”}
May 05 13:54:42 opensearchdb opensearch-dashboards[2084533]: {“type”:“log”,“@timestamp”:“2025-05-05T13:54:42Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:2084533,“message”:“[ResponseError]: Response Error”}
May 05 13:54:44 opensearchdb opensearch-dashboards[2084533]: {“type”:“log”,“@timestamp”:“2025-05-05T13:54:44Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:2084533,“message”:“[ResponseError]: Response Error”}
May 05 13:54:47 opensearchdb opensearch-dashboards[2084533]: {“type”:“log”,“@timestamp”:“2025-05-05T13:54:47Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:2084533,“message”:“[ResponseError]: Response Error”}
May 05 13:54:49 opensearchdb opensearch-dashboards[2084533]: {“type”:“log”,“@timestamp”:“2025-05-05T13:54:49Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:2084533,“message”:“[ResponseError]: Response Error”}
May 05 13:54:52 opensearchdb opensearch-dashboards[2084533]: {“type”:“log”,“@timestamp”:“2025-05-05T13:54:52Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:2084533,“message”:“[ResponseError]: Response Error”}
May 05 13:54:54 opensearchdb opensearch-dashboards[2084533]: {“type”:“log”,“@timestamp”:“2025-05-05T13:54:54Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:2084533,“message”:“[ResponseError]: Response Error”}
May 05 13:54:57 opensearchdb opensearch-dashboards[2084533]: {“type”:“log”,“@timestamp”:“2025-05-05T13:54:57Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:2084533,“message”:“[ResponseError]: Response Error”}
May 05 13:54:59 opensearchdb opensearch-dashboards[2084533]: {“type”:“log”,“@timestamp”:“2025-05-05T13:54:59Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:2084533,“message”:“[ResponseError]: Response Error”}
May 05 13:55:02 opensearchdb opensearch-dashboards[2084533]: {“type”:“log”,“@timestamp”:“2025-05-05T13:55:02Z”,“tags”:[“error”,“opensearch”,“data”],“pid”:2084533,“message”:“[ResponseError]: Response Error”}

Thanks,
Yuga

Hi Pablo,

I had hide the following settings and below is the status that been received.

administrator@opensearchdb:/etc/opensearch-dashboards$ sudo systemctl status opensearch-dashboards
● opensearch-dashboards.service - “OpenSearch Dashboards”
Loaded: loaded (/lib/systemd/system/opensearch-dashboards.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2025-05-05 14:06:14 UTC; 1s ago
Main PID: 2084696 (node)
Tasks: 11 (limit: 114920)
Memory: 130.0M
CGroup: /system.slice/opensearch-dashboards.service
└─2084696 /usr/share/opensearch-dashboards/node/bin/node /usr/share/opensearch-dashboards/src/cli/dist

May 05 14:06:14 opensearchdb systemd[1]: Started “OpenSearch Dashboards”.
administrator@opensearchdb:/etc/opensearch-dashboards$

Below is the opensearch dashboard.yml.


# 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: 5671 **

# 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: “0.0.0.0”

# 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: [“https://0.0.0.0:5671”]

# 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

# 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

OpenSearch.hosts: [https://172.169.85.94:5671]
OpenSearch.ssl.verificationMode: true
OpenSearch.username: “trance”
OpenSearch.password: “solivite@`1”
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: true

Thanks,
Yuga

Hi Pablo,

I had tried few thing but it is showing as below.

administrator@opensearchdb:/etc/opensearch-dashboards$ sudo systemctl status opensearch-dashboards
● opensearch-dashboards.service - “OpenSearch Dashboards”
Loaded: loaded (/lib/systemd/system/opensearch-dashboards.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2025-05-05 16:57:10 UTC; 3s ago
Main PID: 3233 (node)
Tasks: 11 (limit: 114920)
Memory: 177.8M
CGroup: /system.slice/opensearch-dashboards.service
└─3233 /usr/share/opensearch-dashboards/node/bin/node /usr/share/opensearch-dashboards/src/cli/dist

May 05 16:57:13 opensearchdb opensearch-dashboards[3233]: [agentkeepalive:deprecated] options.freeSocketKeepAliveTim>
May 05 16:57:13 opensearchdb opensearch-dashboards[3233]: [agentkeepalive:deprecated] options.freeSocketKeepAliveTim>
May 05 16:57:13 opensearchdb opensearch-dashboards[3233]: [agentkeepalive:deprecated] options.freeSocketKeepAliveTim>
May 05 16:57:13 opensearchdb opensearch-dashboards[3233]: [agentkeepalive:deprecated] options.freeSocketKeepAliveTim>
May 05 16:57:13 opensearchdb opensearch-dashboards[3233]: [agentkeepalive:deprecated] options.freeSocketKeepAliveTim>
May 05 16:57:13 opensearchdb opensearch-dashboards[3233]: [agentkeepalive:deprecated] options.freeSocketKeepAliveTim>
May 05 16:57:13 opensearchdb opensearch-dashboards[3233]: [agentkeepalive:deprecated] options.freeSocketKeepAliveTim>
May 05 16:57:13 opensearchdb opensearch-dashboards[3233]: {“type”:“log”,“@timestamp”:“2025-05-05T16:57:13Z”,“tags”:[>
May 05 16:57:13 opensearchdb opensearch-dashboards[3233]: {“type”:“log”,“@timestamp”:“2025-05-05T16:57:13Z”,“tags”:[>
May 05 16:57:13 opensearchdb opensearch-dashboards[3233]: {“type”:“log”,“@timestamp”:“2025-05-05T16:57:13Z”,“tags”:[>

administrator@opensearchdb:/etc/opensearch-dashboards$ sudo systemctl status opensearch-dashboards
● opensearch-dashboards.service - “OpenSearch Dashboards”
Loaded: loaded (/lib/systemd/system/opensearch-dashboards.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2025-05-05 16:57:10 UTC; 13s ago
Main PID: 3233 (node)
Tasks: 11 (limit: 114920)
Memory: 178.0M
CGroup: /system.slice/opensearch-dashboards.service
└─3233 /usr/share/opensearch-dashboards/node/bin/node /usr/share/opensearch-dashboards/src/cli/dist

May 05 16:57:13 opensearchdb opensearch-dashboards[3233]: [agentkeepalive:deprecated] options.freeSocketKeepAliveTim>
May 05 16:57:13 opensearchdb opensearch-dashboards[3233]: [agentkeepalive:deprecated] options.freeSocketKeepAliveTim>
May 05 16:57:13 opensearchdb opensearch-dashboards[3233]: [agentkeepalive:deprecated] options.freeSocketKeepAliveTim>
May 05 16:57:13 opensearchdb opensearch-dashboards[3233]: {“type”:“log”,“@timestamp”:“2025-05-05T16:57:13Z”,“tags”:[>
May 05 16:57:13 opensearchdb opensearch-dashboards[3233]: {“type”:“log”,“@timestamp”:“2025-05-05T16:57:13Z”,“tags”:[>
May 05 16:57:13 opensearchdb opensearch-dashboards[3233]: {“type”:“log”,“@timestamp”:“2025-05-05T16:57:13Z”,“tags”:[>
May 05 16:57:15 opensearchdb opensearch-dashboards[3233]: {“type”:“log”,“@timestamp”:“2025-05-05T16:57:15Z”,“tags”:[>
May 05 16:57:18 opensearchdb opensearch-dashboards[3233]: {“type”:“log”,“@timestamp”:“2025-05-05T16:57:18Z”,“tags”:[>
May 05 16:57:20 opensearchdb opensearch-dashboards[3233]: {“type”:“log”,“@timestamp”:“2025-05-05T16:57:20Z”,“tags”:[>
May 05 16:57:23 opensearchdb opensearch-dashboards[3233]: {“type”:“log”,“@timestamp”:“2025-05-05T16:57:23Z”,“tags”:[>
lines 1-19/19 (END)

Thanks,
Yuga

Hi Pablo,

Any response on the query mentioned.

Thanks,
Yuga

Hi,

Anyone can response on the query mentioned.

Thanks,
Yuga

@Yugathiswaran Your kibana.yml config output is a bit confusing. Could you share only the configured options?
According to your current file, I’m finding the below as a valid configuration. Is that correct?

server.port: 5671 
server.host: "0.0.0.0"
opensearch.hosts: ["https://0.0.0.0:5671"]

All other lines are commented out.

Hi Pablo,

Actually the detailed was altered due to some security issues.
#server.port: 9200
#server.host: “0.0.0.0”
OpenSearch.hosts: [“https://0.0.0.0:9200”]
May I check with you do I need to install kibana as I am seeing unable to find the kibana.yml config. Kindly advise.

Thanks,
Yuga

Hi Pablo,

I believe managed to sort out my issue.

Thanks,
Yuga

2 Likes