Monitoring Settings in Elasticsearch

Monitoring is enabled by default when you install X-Pack. You can configure these monitoring settings in the elasticsearch.yml file.

To adjust how monitoring data is displayed in the monitoring UI, configure xpack.monitoring settings in kibana.yml. To control how monitoring data is collected from Logstash, configure xpack.monitoring settings in logstash.yml.

For more information, see Monitoring the Elastic Stack.

General Monitoring Settings

xpack.monitoring.enabled
Set to false to disable Elasticsearch X-Pack monitoring for Elasticsearch on the node.

Monitoring Collection Settings

The xpack.monitoring.collection settings control how data is collected from your Elasticsearch nodes.

xpack.monitoring.collection.cluster.state.timeout
Sets the timeout for collecting the cluster state. Defaults to 10s.
xpack.monitoring.collection.cluster.stats.timeout
Sets the timeout for collecting the cluster statistics. Defaults to 10s.
xpack.monitoring.collection.indices

Controls which indices Monitoring collects data from. Defaults to all indices. Specify the index names as a comma-separated list, for example test1,test2,test3. Names can include wildcards, for example test*. You can explicitly include or exclude indices by prepending + to include the index, or - to exclude the index. For example, to include all indices that start with test except test3, you could specify +test*,-test3.

You can update this setting through the Cluster Update Settings API.

xpack.monitoring.collection.index.stats.timeout
Sets the timeout for collecting index statistics. Defaults to 10s.
xpack.monitoring.collection.indices.stats.timeout
Sets the timeout for collecting total indices statistics. Defaults to 10s.
xpack.monitoring.collection.index.recovery.active_only
Controls whether or not all recoveries are collected. Set to true to collect only active recoveries. Defaults to false.
xpack.monitoring.collection.index.recovery.timeout
Sets the timeout for collecting the recovery information. Defaults to 10s.
xpack.monitoring.collection.interval
Controls how often data samples are collected. Defaults to 10s. If you modify the collection interval, set the xpack.monitoring.min_interval_seconds option in kibana.yml to the same value. Set to -1 to temporarily disable data collection. You can update this setting through the Cluster Update Settings API.
xpack.monitoring.history.duration

Sets the retention duration beyond which the indices created by a Monitoring exporter will be automatically deleted. Defaults to 7d (7 days).

This setting has a minimum value of 1d (1 day) to ensure that something is being monitored, and it cannot be disabled.

This setting currently only impacts local-type exporters. Indices created using the http exporter will not be deleted automatically.

xpack.monitoring.exporters
Configures where the agent stores monitoring data. By default, the agent uses a local exporter that indexes monitoring data on the cluster where it is installed. Use an HTTP exporter to send data to a separate monitoring cluster. For more information, see Local Exporter Settings, HTTP Exporter Settings, and Setting up a Separate Monitoring Cluster.

Local Exporter Settings

The local exporter is the default exporter used by Monitoring. As the name is meant to imply, it exports data to the local cluster, which means that there is not much needed to be configured.

If you do not supply any exporters, then Monitoring will automatically create one for you. If any exporter is provided, then no default is added.

xpack.monitoring.exporters.my_local:
  type: local
type
The value for a Local exporter must always be local and it is required.
use_ingest
Whether to supply a placeholder pipeline to the cluster and a pipeline processor with every bulk request. The default value is true. If disabled, then it means that it will not use pipelines, which means that a future release cannot automatically upgrade bulk requests to future-proof them.
cluster_alerts.management.enabled
Whether to create cluster alerts for this cluster. The default value is true. To use this feature, Watcher must be enabled. If you have a basic license, cluster alerts are not displayed.

HTTP Exporter Settings

The following lists settings that can be supplied with the http exporter. All settings are shown as what follows the name you select for your exporter:

xpack.monitoring.exporters.my_remote:
  type: http
  host: ["host:port", ...]
type
The value for an HTTP exporter must always be http and it is required.
host

Host supports multiple formats, both as an array or as a single value. Supported formats include hostname, hostname:port, http://hostname http://hostname:port, https://hostname, and https://hostname:port. Hosts cannot be assumed. The default scheme is always http and the default port is always 9200 if not supplied as part of the host string.

xpack.monitoring.exporters:
  example1:
    type: http
    host: "10.1.2.3"
  example2:
    type: http
    host: ["http://10.1.2.4"]
  example3:
    type: http
    host: ["10.1.2.5", "10.1.2.6"]
  example4:
    type: http
    host: ["https://10.1.2.3:9200"]
auth.username
The username is required if a auth.password is supplied.
auth.password
The password for the auth.username.
connection.timeout
The amount of time that the HTTP connection is supposed to wait for a socket to open for the request. The default value is 6s.
connection.read_timeout
The amount of time that the HTTP connection is supposed to wait for a socket to send back a response. The default value is 10 * connection.timeout (60s if neither are set).
ssl
Each HTTP exporter can define its own TLS / SSL settings or inherit them. See the TLS / SSL section below.
proxy.base_path
The base path to prefix any outgoing request, such as /base/path (e.g., bulk requests would then be sent as /base/path/_bulk). There is no default value.
headers

Optional headers that are added to every request, which can assist with routing requests through proxies.

xpack.monitoring.exporters.my_remote:
  headers:
    X-My-Array: [abc, def, xyz]
    X-My-Header: abc123

Array-based headers are sent n times where n is the size of the array. Content-Type and Content-Length cannot be set. Any headers created by the Monitoring agent will override anything defined here.

index.name.time_format
A mechanism for changing the default date suffix for the, by default, daily Monitoring indices. The default value is YYYY.MM.DD, which is why the indices are created daily.
use_ingest
Whether to supply a placeholder pipeline to the monitoring cluster and a pipeline processor with every bulk request. The default value is true. If disabled, then it means that it will not use pipelines, which means that a future release cannot automatically upgrade bulk requests to future-proof them.
cluster_alerts.management.enabled
Whether to create cluster alerts for this cluster. The default value is true. To use this feature, Watcher must be enabled. If you have a basic license, cluster alerts are not displayed.

X-Pack monitoring TLS/SSL Settings

You can configure the following TLS/SSL settings. If the settings are not configured, the Default TLS/SSL Settings are used.

xpack.monitoring.exporters.$NAME.ssl.supported_protocols
Supported protocols with versions. Valid protocols: SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2. Defaults to TLSv1.2, TLSv1.1, TLSv1. Defaults to the value of xpack.ssl.supported_protocols.
xpack.monitoring.exporters.$NAME.ssl.verification_mode
Controls the verification of certificates. Valid values are none, certificate, and full. Defaults to the value of xpack.ssl.verification_mode.
xpack.monitoring.exporters.$NAME.ssl.cipher_suites
Supported cipher suites can be found in Oracle’s Java Cryptography Architecture documentation. Defaults to the value of xpack.ssl.cipher_suites.

X-Pack monitoring TLS/SSL Key and Trusted Certificate Settings

The following settings are used to specify a private key, certificate, and the trusted certificates that should be used when communicating over an SSL/TLS connection. If none of the settings below are specified, the Default TLS/SSL Settings are used. A private key and certificate are optional and would be used if the server requires client authentication for PKI authentication. If none of the settings below are specified, the Default TLS/SSL Settings are used.

PEM Encoded Files

When using PEM encoded files, use the following settings:

xpack.monitoring.exporters.$NAME.ssl.key
Path to a PEM encoded file containing the private key.
xpack.monitoring.exporters.$NAME.ssl.key_passphrase
The passphrase that will be used to decrypt the private key. This value is optional as the key may not be encrypted.
xpack.monitoring.exporters.$NAME.ssl.certificate
Path to a PEM encoded file containing the certificate (or certificate chain) that will be presented when requested.
xpack.monitoring.exporters.$NAME.ssl.certificate_authorities
List of paths to the PEM encoded certificate files that should be trusted.

Java Keystore Files

When using Java keystore files (JKS), which contain the private key, certificate and certificates that should be trusted, use the following settings:

xpack.monitoring.exporters.$NAME.ssl.keystore.path
Path to the keystore that holds the private key and certificate.
xpack.monitoring.exporters.$NAME.ssl.keystore.password
Password to the keystore.
xpack.monitoring.exporters.$NAME.ssl.keystore.key_password
Password for the private key in the keystore. Defaults to the same value as xpack.monitoring.exporters.$NAME.ssl.keystore.password.
xpack.monitoring.exporters.$NAME.ssl.truststore.path
Path to the truststore file.
xpack.monitoring.exporters.$NAME.ssl.truststore.password
Password to the truststore.