Configure index lifecycle management

edit

Configure index lifecycle management

edit

Use the index lifecycle management feature in Elasticsearch to manage your Heartbeat indices as they age. For example, instead of creating daily indices where index size can vary based on the number of Beats and number of events sent, use an index lifecycle policy to automate a rollover to a new index when the existing index reaches a specified size or age.

Starting with version 7.0, Heartbeat uses index lifecycle management by default when it connects to a cluster that supports lifecycle management. Heartbeat loads the default policy automatically and applies it to any indices created by Heartbeat.

You can view and edit the policy in the Index lifecycle policies UI in Kibana. For more information about working with the UI, see Index lifecyle policies.

Example configuration:

setup.ilm.enabled: auto
setup.ilm.rollover_alias: "heartbeat"
setup.ilm.pattern: "{now/d}-000001" 

Date math is supported here. For more information, see Using date math with the rollover API.

Configuration options

edit

You can specify the following settings in the setup.ilm section of the heartbeat.yml config file:

setup.ilm.enabled

edit

Enables or disables index lifecycle management on any new indices created by Heartbeat. Valid values are true, false, and auto. When auto (the default) is specified on version 7.0 and later, Heartbeat automatically uses index lifecycle management if the feature is enabled in Elasticsearch and has the required license; otherwise, Heartbeat creates daily indices.

setup.ilm.rollover_alias

edit

The index lifecycle write alias name. The default is heartbeat-%{agent.version}. Setting this option changes the alias name.

If you modify this setting after loading the index template, you must overwrite the template to apply the changes.

setup.ilm.pattern

edit

The rollover index pattern. The default is %{now/d}-000001.

Date math is supported in this setting. For example:

setup.ilm.pattern: "{now/M{YYYY.MM}}-000001"

For more information, see Using date math with the rollover API.

If you modify this setting after loading the index template, you must overwrite the template to apply the changes.

setup.ilm.policy_name

edit

The name to use for the lifecycle policy. The default is heartbeat-%{[agent.version]}.

setup.ilm.policy_file

edit

The path to a JSON file that contains a lifecycle policy configuration. Use this setting to load your own lifecycle policy.

For more information about lifecycle policies, see Set up index lifecycle management policy in the Elasticsearch Reference.

setup.ilm.check_exists

edit

When set to false, disables the check for an existing lifecycle policy. The default is true. You need to disable this check if the Heartbeat user connecting to a secured cluster doesn’t have the read_ilm privilege.

If you set this option to false, set setup.ilm.overwrite: true so the lifecycle policy can be installed.

setup.ilm.overwrite

edit

When set to true, the lifecycle policy is overwritten at startup. The default is false.