
There was an error where the rention days was 2x greater than it was supposed to be. Change-Id: I9e9451e4381a32c0b2857eb75689561d3517b8d7 Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
125 lines
3.4 KiB
Django/Jinja
125 lines
3.4 KiB
Django/Jinja
---
|
|
# Copyright 2018, Rackspace US, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
{% set action_items = [] -%}
|
|
{# Delete index loop #}
|
|
{% for key in elastic_beat_retention_policy_hosts.keys() -%}
|
|
{% set delete_indices = {} -%}
|
|
{% set index_retention = hostvars[inventory_hostname]['elastic_' + key + '_retention'] -%}
|
|
{% set _ = delete_indices.update(
|
|
{
|
|
'action': 'delete_indices',
|
|
'description': 'Prune indices for ' + key + ' after ' ~ (index_retention | int) ~ ' days.',
|
|
'options': {
|
|
'ignore_empty_list': true,
|
|
'disable_action': false
|
|
}
|
|
}
|
|
)
|
|
-%}
|
|
{# add the filter loop #}
|
|
{% set filters = [] -%}
|
|
{% set _ = filters.append(
|
|
{
|
|
'filtertype': 'pattern',
|
|
'kind': 'prefix',
|
|
'value': key + '-'
|
|
}
|
|
)
|
|
-%}
|
|
{% set _ = filters.append(
|
|
{
|
|
'filtertype': 'age',
|
|
'source': 'name',
|
|
'direction': 'older',
|
|
'timestring': '%Y.%m.%d',
|
|
'unit': 'days',
|
|
'unit_count': (index_retention | int)
|
|
}
|
|
)
|
|
-%}
|
|
{% set _ = delete_indices.update({'filters': filters}) -%}
|
|
{% set _ = action_items.append(delete_indices) -%}
|
|
|
|
{# Set shrink curator options #}
|
|
{% set shrink_indices = {} -%}
|
|
{% set _ = shrink_indices.update(
|
|
{
|
|
'action': 'shrink',
|
|
'description': 'Shrink ' + key + ' indices older than ' ~ (index_retention | int) // 4 ~ ' days',
|
|
'options': {
|
|
"disable_action": false,
|
|
"ignore_empty_list": true,
|
|
"shrink_node": "DETERMINISTIC",
|
|
"node_filters": {
|
|
"permit_masters": ((master_nodes | length) < (data_nodes | length)) | ternary(true, false),
|
|
"exclude_nodes": (groups['kibana'] | map('extract', hostvars, 'ansible_host') | list)
|
|
},
|
|
"number_of_shards": 1,
|
|
"number_of_replicas": 1,
|
|
"shrink_suffix": '-shrink',
|
|
"copy_aliases": true,
|
|
"delete_after": true,
|
|
"post_allocation": {
|
|
"allocation_type": "include",
|
|
"key": "node_tag",
|
|
"value": "cold"
|
|
},
|
|
"wait_for_active_shards": 1,
|
|
"extra_settings": {
|
|
"settings": {
|
|
"index.codec": "best_compression"
|
|
}
|
|
},
|
|
"wait_for_completion": true,
|
|
"wait_for_rebalance": true,
|
|
"wait_interval": 9,
|
|
"max_wait": -1
|
|
}
|
|
}
|
|
)
|
|
-%}
|
|
{% set filters = [] -%}
|
|
{% set _ = filters.append(
|
|
{
|
|
'filtertype': 'pattern',
|
|
'kind': 'prefix',
|
|
'value': key + '-'
|
|
}
|
|
)
|
|
-%}
|
|
{% set _ = filters.append(
|
|
{
|
|
'filtertype': 'age',
|
|
'source': 'creation_date',
|
|
'direction': 'older',
|
|
'unit': 'days',
|
|
'unit_count': (index_retention | int) // 4
|
|
}
|
|
)
|
|
-%}
|
|
{% set _ = shrink_indices.update({'filters': filters}) -%}
|
|
{% set _ = action_items.append(shrink_indices) -%}
|
|
{% endfor -%}
|
|
|
|
{% set actions = {} -%}
|
|
{% for action_item in action_items -%}
|
|
{% set _ = actions.update({loop.index: action_item}) -%}
|
|
{% endfor -%}
|
|
|
|
{# Render all actions #}
|
|
{% set curator_actions = {'actions': actions} -%}
|
|
{{ curator_actions | to_nice_yaml(indent=2) }}
|