At one of my clients we are using MetricBeats to monitor our RabbitMQ cluster. Of course this can result in a lot of data over time.
Recently I was called by one of the system administrators asking why the disk was filling up on the servers hosting ElasticSearch. Let’s find out together…
Index lifecycle policies
To keep the amount of data on your ElasticSearch cluster under control, you can configure a lifecycle policy. A lifecycle policy moves data through multiple phases;
- A hot phase: used for your most recent most frequently searched data. It provides the highest indexing AND search performance but comes with the highest cost
- A warm phase: optimized for search performance over index performance. In this phase it is expected that the data doesn’t change that often anymore.
- A cold phase: optimized for cost saving over search performance. In this phase the data is read-only.
- A delete phase: deletes the data you longer need
Let’s see how to configure a lifecycle policy to keep our MetricBeats data under control:
- Go to your Kibana instance. Click on the Management menu item from the navigation sidebar.
- On the Stack Management page, click on Index Lifecycle Policies.
- Normally when you have installed and configured MetricBeats, a default MetricBeats policy should have been created.
- Paginate through the results if you can find it. Click on the MetricBeat line to open the policy.
- The original policy didn’t had a delete phase configured and the data was kept in the warm phase forever. That explains why the disks were filling up.
- To delete the data after a certain amount of time, click on the Recycle bin icon in the warm phase to enable the delete phase.
- Specify a number of days before the data is removed and click on Save Policy to apply the changes.
That should do the trick…