Edit Elasticsearch user settings
editEdit Elasticsearch user settings
editChange how Elasticsearch runs by providing your own user settings. Elasticsearch Add-On for Heroku appends these
settings to each node’s elasticsearch.yml
configuration file.
Elasticsearch Add-On for Heroku automatically rejects elasticsearch.yml
settings that could break your
cluster. For a list of supported settings, check
Supported Elasticsearch settings.
You can also update dynamic cluster settings using Elasticsearch’s update cluster settings API. However, Elasticsearch Add-On for Heroku doesn’t reject unsafe setting changes made using this API. Use with caution.
To add or edit user settings:
- Log in to the Elasticsearch Add-On for Heroku console.
-
On the deployments page, select your deployment.
Narrow your deployments by name, ID, or choose from several other filters. To customize your view, use a combination of filters, or change the format from a grid to a list.
- From your deployment menu, go to the Edit page.
- In the Elasticsearch section, select Manage user settings and extensions.
- Update the user settings.
- Select Save changes.
In some cases, you may get a warning saying "User settings are different across Elasticsearch instances". To fix this issue, ensure that your user settings (including the comments sections and whitespaces) are identical across all Elasticsearch nodes (not only the data tiers, but also the Master, Machine Learning, and Coordinating nodes).
Supported Elasticsearch settings
editElasticsearch Add-On for Heroku supports the following elasticsearch.yml
settings.
General settings
editThe following general settings are supported:
-
http.cors.*
-
Enables cross-origin resource sharing (CORS) settings for the HTTP module.
If your use case depends on the ability to receive CORS requests and you have a cluster that was provisioned prior to January 25th 2019, you must manually set
http.cors.enabled
totrue
and allow a specific set of hosts withhttp.cors.allow-origin
. Applying these changes in your Elasticsearch configuration allows cross-origin resource sharing requests. -
http.compression
-
Support for HTTP compression when possible (with Accept-Encoding). Defaults to
true
. -
transport.compress
- Configures transport compression for node-to-node traffic.
-
transport.compression_scheme
- Configures transport compression for node-to-node traffic.
-
repositories.url.allowed_urls
- Enables explicit allowing of read-only URL repositories.
-
reindex.remote.whitelist
-
Explicitly allows the set of hosts that can be reindexed from remotely. Expects a YAML array of
host:port
strings. Consists of a comma-delimited list ofhost:port
entries. Defaults to["\*.io:*", "\*.com:*"]
. -
reindex.ssl.*
- To learn more on how to configure reindex SSL user settings, check configuring reindex SSL parameters.
-
script.painless.regex.enabled
- Enables regular expressions for the Painless scripting language.
-
action.auto_create_index
- Automatically create index if it doesn’t already exist.
-
action.destructive_requires_name
-
When set to
true
, users must specify the index name to delete an index. It’s not possible to delete _all or use wildcards. -
xpack.notification.webhook.additional_token_enabled
-
When set to
true
, Elasticsearch automatically sets a token which enables the bypassing of traffic filters for calls initiated by Watcher towards Elasticsearch or Kibana. The default isfalse
and the feature is available starting with Elasticsearch version 8.7.1 and later.This setting only applies to the Watcher
webhook
action, not thehttp
input action. -
cluster.indices.close.enable
-
Enables closing indices in Elasticsearch. Defaults to
true
for versions 7.2.0 and later, and tofalse
for previous versions. In versions 7.1 and below, closed indices represent a data loss risk: if you close an index, it is not included in snapshots and you will not be able to restore the data. Similarly, closed indices are not included when you make cluster configuration changes, such as scaling to a different capacity, failover, and many other operations. Lastly, closed indices can lead to inaccurate disk space counts.For versions 7.1 and below, closed indices represent a data loss risk. Enable this setting only temporarily for these versions.
-
azure.client.CLIENT_NAME.endpoint_suffix
-
Allows providing the endpoint_suffix client setting for a non-internal Azure client used for snapshot/restore. Note that
CLIENT_NAME
should be replaced with the name of the created client.
Circuit breaker settings
editThe following circuit breaker settings are supported:
-
indices.breaker.total.limit
- Configures the parent circuit breaker settings.
-
indices.breaker.fielddata.limit
- Configures the limit for the fielddata breaker.
-
indices.breaker.fielddata.overhead
- Configures a constant that all field data estimations are multiplied with to determine a final estimation.
-
indices.breaker.request.limit
- Configures the limit for the request breaker.
-
indices.breaker.request.overhead
- Configures a constant that all request estimations are multiplied by to determine a final estimation.
Indexing pressure settings
editThe following indexing pressure settings are supported:
-
indexing_pressure.memory.limit
- Configures the indexing pressure settings.
X-Pack
editVersion 8.5.3+, 7.x support in 7.17.8+
edit-
xpack.security.transport.ssl.trust_restrictions.x509_fields
- Specifies which field(s) from the TLS certificate is used to match for the restricted trust management that is used for remote clusters connections. This should only be set when a self managed cluster can not create certificates that follow the Elastic Cloud pattern. The default value is ["subjectAltName.otherName.commonName"], the Elastic Cloud pattern. "subjectAltName.dnsName" is also supported and can be configured in addition to or in replacement of the default.
All supported versions
edit-
xpack.ml.inference_model.time_to_live
- Sets the duration of time that the trained models are cached. Check Machine learning settings.
-
xpack.security.loginAssistanceMessage
- Adds a message to the login screen. Useful for displaying corporate messages.
-
xpack.security.authc.anonymous.*
- To learn more on how to enable anonymous access, check Enabling anonymous access
-
xpack.notification.slack
-
Configures Slack notification settings. Note that you need to add
secure_url
as a secret value to the keystore. -
xpack.notification.pagerduty
- Configures PagerDuty notification settings.
-
xpack.watcher.trigger.schedule.engine
- Defines when the watch should start, based on date and time Learn more.
-
xpack.notification.email.html.sanitization.*
- Enables email notification settings to sanitize HTML elements in emails that are sent.
-
xpack.monitoring.collection.interval
- Controls how often data samples are collected.
-
xpack.monitoring.collection.min_interval_seconds
-
Specifies the minimum number of seconds that a time bucket in a chart can represent. If you modify the
xpack.monitoring.collection.interval
, use the same value in this setting.Defaults to
10
(10 seconds). -
xpack.monitoring.history.duration
- Sets the retention duration beyond which the indices created by a monitoring exporter will be automatically deleted.
-
xpack.watcher.history.cleaner_service.enabled
- Controls whether old watcher indices are automatically deleted.
-
xpack.http.ssl.cipher_suites
- Controls the list of supported cipher suites for all outgoing TLS connections.
-
xpack.security.authc.realms.saml.*
- To learn more on how to enable SAML and related user settings, check secure your clusters with SAML.
-
xpack.security.authc.realms.oidc.*
- To learn more on how to enable OpenID Connect and related user settings, check secure your clusters with OpenID Connect.
-
xpack.security.authc.realms.kerberos.*
- To learn more on how to enable Kerberos and relate user settings, check secure your clusters with Kerberos.
-
xpack.security.authc.realms.jwt.*
- To learn more on how to enable JWT and related user settings, check secure your clusters with JWT.
All SAML, OpenID Connect, Kerberos, and JWT settings are allowlisted.
Disk-based shard allocation settings
editThe following disk-based allocation settings are supported:
-
cluster.routing.allocation.disk.threshold_enabled
-
Enable or disable disk allocation decider and defaults to
true
. -
cluster.routing.allocation.disk.watermark.low
- Configures disk-based shard allocation’s low watermark.
-
cluster.routing.allocation.disk.watermark.high
- Configures disk-based shard allocation’s high watermark.
-
cluster.routing.allocation.disk.watermark.flood_stage
- Configures disk-based shard allocation’s flood_stage.
Remember to update user settings for alerts when performing a major version upgrade.
Enrich settings
editThe following enrich settings are supported:
-
enrich.cache_size
- Maximum number of searches to cache for enriching documents. Defaults to 1000. There is a single cache for all enrich processors in the cluster. This setting determines the size of that cache.
-
enrich.coordinator_proxy.max_concurrent_requests
- Maximum number of concurrent multi-search requests to run when enriching documents. Defaults to 8.
-
enrich.coordinator_proxy.max_lookups_per_request
- Maximum number of searches to include in a multi-search request when enriching documents. Defaults to 128.
-
enrich.coordinator_proxy.queue_capacity
- coordinator queue capacity, defaults to max_concurrent_requests * max_lookups_per_request
Audit settings
editThe following audit settings are supported:
-
xpack.security.audit.enabled
- Enables auditing on Elasticsearch cluster nodes. Defaults to false.
-
xpack.security.audit.logfile.events.include
- Specifies which events to include in the auditing output.
-
xpack.security.audit.logfile.events.exclude
- Specifies which events to exclude from the output. No events are excluded by default.
-
xpack.security.audit.logfile.events.emit_request_body
- Specifies whether to include the request body from REST requests on certain event types, for example authentication_failed. Defaults to false.
-
xpack.security.audit.logfile.emit_node_name
- Specifies whether to include the node name as a field in each audit event. Defaults to true.
-
xpack.security.audit.logfile.emit_node_host_address
- Specifies whether to include the node’s IP address as a field in each audit event. Defaults to false.
-
xpack.security.audit.logfile.emit_node_host_name
- Specifies whether to include the node’s host name as a field in each audit event. Defaults to false.
-
xpack.security.audit.logfile.emit_node_id
- Specifies whether to include the node ID as a field in each audit event. Defaults to true.
-
xpack.security.audit.logfile.events.ignore_filters.<policy_name>.users
- A list of user names or wildcards. The specified policy will not print audit events for users matching these values.
-
xpack.security.audit.logfile.events.ignore_filters.<policy_name>.realms
- A list of authentication realm names or wildcards. The specified policy will not print audit events for users in these realms.
-
xpack.security.audit.logfile.events.ignore_filters.<policy_name>.roles
- A list of role names or wildcards. The specified policy will not print audit events for users that have these roles.
-
xpack.security.audit.logfile.events.ignore_filters.<policy_name>.indices
- A list of index names or wildcards. The specified policy will not print audit events when all the indices in the event match these values.
-
xpack.security.audit.logfile.events.ignore_filters.<policy_name>.actions
- A list of action names or wildcards. The specified policy will not print audit events for actions matching these values.
To enable auditing you must first enable deployment logging.
Universal Profiling settings
editThe following settings for Elastic Universal Profiling are supported:
-
xpack.profiling.enabled
- Version 8.7.0+: Specifies whether the Universal Profiling Elasticsearch plugin is enabled. Defaults to true.
-
xpack.profiling.templates.enabled
- Version 8.9.0+: Specifies whether Universal Profiling related index templates should be created on startup. Defaults to false.