Merge "Improvements to ILM"
This commit is contained in:
commit
dd5fc5f788
@ -282,3 +282,14 @@ filebeat_prospectors:
|
||||
- /var/log/elasticsearch/*.log
|
||||
tags:
|
||||
- beats
|
||||
|
||||
filebeat_ilm_policy_name: "filebeat-{{ beat_version }}"
|
||||
filebeat_ilm_policy_template: "filebeat-{{ beat_version }}"
|
||||
filebeat_ilm_policy_filename: "filebeat-ilm-policy.json"
|
||||
filebeat_ilm_policy_file_location: "/etc/filebeat"
|
||||
|
||||
ilm_policy_name: "{{ filebeat_ilm_policy_name | default('') }}"
|
||||
ilm_policy: "{{ (filebeat_ilm_policy | default(default_ilm_policy)) | default({}) }}"
|
||||
ilm_policy_template: "{{ filebeat_ilm_policy_template | default('') }}"
|
||||
ilm_policy_filename: "{{ (filebeat_ilm_policy_filename | default(default_ilm_policy_filename)) | default('') }}"
|
||||
ilm_policy_file_location: "{{ (filebeat_ilm_policy_file_location | default(default_ilm_policy_file_location)) | default('') }}"
|
||||
|
@ -82,6 +82,10 @@
|
||||
notify:
|
||||
- Enable and restart filebeat
|
||||
|
||||
- include_role:
|
||||
name: elastic_ilm
|
||||
when: ilm_policy.keys() | length > 0
|
||||
|
||||
- name: Run the beat setup role
|
||||
include_role:
|
||||
name: elastic_beat_setup
|
||||
|
@ -1368,7 +1368,12 @@ processors:
|
||||
|
||||
# Configure rollover index pattern.
|
||||
#setup.ilm.pattern: "{now/d}-000001"
|
||||
|
||||
{% if ilm_policy_name is defined %}
|
||||
setup.ilm.policy_name: "{{ ilm_policy_name }}"
|
||||
{% endif %}
|
||||
{% if ilm_policy_file_location is defined %}
|
||||
setup.ilm.policy_file: "{{ ilm_policy_file_location }}/{{ ilm_policy_filename }}"
|
||||
{% endif %}
|
||||
|
||||
#============================== Kibana ======================================
|
||||
{% if (groups['kibana'] | length) > 0 %}
|
||||
|
@ -14,3 +14,14 @@
|
||||
# limitations under the License.
|
||||
|
||||
heartbeat_service_state: restarted
|
||||
|
||||
heartbeat_ilm_policy_name: "heartbeat-{{ beat_version }}"
|
||||
heartbeat_ilm_policy_template: "heartbeat-{{ beat_version}}"
|
||||
heartbeat_ilm_policy_filename: "heartbeat-ilm-policy.json"
|
||||
heartbeat_ilm_policy_file_location: "/etc/heartbeat"
|
||||
|
||||
ilm_policy_name: "{{ heartbeat_ilm_policy_name | default('') }}"
|
||||
ilm_policy: "{{ (heartbeat_ilm_policy | default(default_ilm_policy)) | default({}) }}"
|
||||
ilm_policy_template: "{{ heartbeat_ilm_policy_template | default('') }}"
|
||||
ilm_policy_filename: "{{ (heartbeat_ilm_policy_filename | default(heartbeat_ilm_policy_filename)) | default('') }}"
|
||||
ilm_policy_file_location: "{{ (heartbeat_ilm_policy_file_location | default(default_ilm_policy_file_location)) | default('') }}"
|
||||
|
@ -88,6 +88,10 @@
|
||||
notify:
|
||||
- Enable and restart heartbeat
|
||||
|
||||
- include_role:
|
||||
name: elastic_ilm
|
||||
when: ilm_policy.keys() | length > 0
|
||||
|
||||
- name: Run the beat setup role
|
||||
include_role:
|
||||
name: elastic_beat_setup
|
||||
|
@ -1013,7 +1013,12 @@ processors:
|
||||
|
||||
# Configure rollover index pattern.
|
||||
#setup.ilm.pattern: "{now/d}-000001"
|
||||
|
||||
{% if ilm_policy_name is defined %}
|
||||
setup.ilm.policy_name: "{{ ilm_policy_name }}"
|
||||
{% endif %}
|
||||
{% if ilm_policy_file_location is defined %}
|
||||
setup.ilm.policy_file: "{{ ilm_policy_file_location }}/{{ ilm_policy_filename }}"
|
||||
{% endif %}
|
||||
#============================== Kibana =====================================
|
||||
{% if (groups['kibana'] | length) > 0 %}
|
||||
{{ elk_macros.setup_kibana(hostvars[groups['kibana'][0]]['ansible_host'] ~ ':' ~ kibana_port) }}
|
||||
|
18
elk_metrics_7x/roles/elastic_ilm/defaults/main.yml
Normal file
18
elk_metrics_7x/roles/elastic_ilm/defaults/main.yml
Normal file
@ -0,0 +1,18 @@
|
||||
beat_version: "7.3.2"
|
||||
default_ilm_rollover_max_size: "30G"
|
||||
default_ilm_rollover_max_age: "15d"
|
||||
default_ilm_delete_min_age: "30d"
|
||||
default_ilm_policy:
|
||||
policy:
|
||||
phases:
|
||||
hot:
|
||||
actions:
|
||||
rollover:
|
||||
max_size: "{{ default_ilm_rollover_max_size }}"
|
||||
max_age: "{{ default_ilm_rollover_max_age }}"
|
||||
delete:
|
||||
min_age: "{{ default_ilm_delete_min_age }}"
|
||||
actions:
|
||||
delete: {}
|
||||
default_ilm_policy_filename: "default-ilm-policy.json"
|
||||
default_ilm_policy_file_location: "/tmp"
|
32
elk_metrics_7x/roles/elastic_ilm/meta/main.yml
Normal file
32
elk_metrics_7x/roles/elastic_ilm/meta/main.yml
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
# 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.
|
||||
|
||||
galaxy_info:
|
||||
author: OpenStack
|
||||
description: Elastic v7.x elastic_ilm role
|
||||
company: Rackspace
|
||||
license: Apache2
|
||||
min_ansible_version: 2.5
|
||||
platforms:
|
||||
- name: Ubuntu
|
||||
versions:
|
||||
- trusty
|
||||
- xenial
|
||||
- bionic
|
||||
categories:
|
||||
- cloud
|
||||
- development
|
||||
- elasticsearch
|
||||
- elastic-stack
|
@ -0,0 +1,8 @@
|
||||
---
|
||||
- name: Template out policy to hosts for initial set up situations
|
||||
template:
|
||||
src: "ilm-policy.json.j2"
|
||||
dest: "{{ ilm_policy_file_location }}/{{ ilm_policy_filename }}"
|
||||
mode: 0750
|
||||
owner: root
|
||||
group: root
|
@ -0,0 +1,43 @@
|
||||
---
|
||||
- name: Check if policy exists
|
||||
uri:
|
||||
url: "http://127.0.0.1:{{ elastic_port }}/_ilm/policy/{{ ilm_policy_name }}"
|
||||
method: GET
|
||||
status_code: 200,404
|
||||
body_format: json
|
||||
register: check_policy
|
||||
when: ilm_policy_name is defined and ilm_policy is defined
|
||||
|
||||
- name: Update ILM policy when not installing beat for first time
|
||||
uri:
|
||||
url: "http://127.0.0.1:{{ elastic_port }}/_ilm/policy/{{ ilm_policy_name }}"
|
||||
method: PUT
|
||||
body: "{{ ilm_policy }}"
|
||||
status_code: 200
|
||||
body_format: json
|
||||
when: check_policy.status == 200 and ilm_policy_name is defined and ilm_policy is defined and (elk_package_state | default('present')) != "latest"
|
||||
|
||||
- name: Get template
|
||||
uri:
|
||||
url: "http://127.0.0.1:{{ elastic_port }}/_template/{{ ilm_policy_template }}/"
|
||||
method: GET
|
||||
status_code: 200,404
|
||||
body_format: json
|
||||
register: template
|
||||
when: ilm_policy_template is defined and ilm_policy_name is defined
|
||||
|
||||
- set_fact:
|
||||
updated_template: "{{ template.json | combine({template.json.keys()[0]|string:{'settings': {'index': {'lifecycle': {'name': 'ilm_policy_name' }}}}}, recursive=True) }}"
|
||||
when: template.status == 200 and ilm_policy_template is defined and ilm_policy_name is defined
|
||||
|
||||
- name: Update template
|
||||
uri:
|
||||
url: "http://127.0.0.1:{{ elastic_port }}/_template/{{ ilm_policy_template }}/"
|
||||
body: "{{ updated_template[template.json.keys()[0]|string] }}"
|
||||
method: PUT
|
||||
body_format: json
|
||||
status_code: 200
|
||||
headers:
|
||||
Content-Type: "application/json"
|
||||
kbn-xsrf: "{{ inventory_hostname | to_uuid }}"
|
||||
when: template.status == 200 and ilm_policy_template is defined and ilm_policy_name is defined
|
12
elk_metrics_7x/roles/elastic_ilm/tasks/main.yml
Normal file
12
elk_metrics_7x/roles/elastic_ilm/tasks/main.yml
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
- include_tasks: "elastic_ilm_policy_template.yml"
|
||||
when: ilm_policy_file_location is defined and ilm_policy_filename is defined and ilm_policy is defined
|
||||
|
||||
- block:
|
||||
- name: Update policy and template when not upgrading
|
||||
include_tasks: "elastic_ilm_update_policy.yml"
|
||||
delegate_to: "{{ groups['elastic-logstash'][0] }}"
|
||||
environment:
|
||||
no_proxy: "{{ hostvars[groups['elastic-logstash'][0]]['ansible_host'] }},127.0.0.1"
|
||||
run_once: True
|
||||
when: (elk_package_state | default('present')) != "latest"
|
@ -0,0 +1 @@
|
||||
{{ ilm_policy | to_json }}
|
@ -14,3 +14,14 @@
|
||||
# limitations under the License.
|
||||
|
||||
journalbeat_service_state: restarted
|
||||
|
||||
journalbeat_ilm_policy_name: "journalbeat-{{ beat_version }}"
|
||||
journalbeat_ilm_policy_template: "journalbeat-{{ beat_version }}"
|
||||
journalbeat_ilm_policy_filename: "journalbeat-ilm-policy.json"
|
||||
journalbeat_ilm_policy_file_location: "/etc/journalbeat"
|
||||
|
||||
ilm_policy_name: "{{ journalbeat_ilm_policy_name | default('') }}"
|
||||
ilm_policy: "{{ (journalbeat_ilm_policy | default(default_ilm_policy)) | default({}) }}"
|
||||
ilm_policy_template: "{{ journalbeat_ilm_policy_template | default('') }}"
|
||||
ilm_policy_filename: "{{ (journalbeat_ilm_policy_filename | default(default_ilm_policy_filename)) | default('') }}"
|
||||
ilm_policy_file_location: "{{ (journalbeat_ilm_policy_file_location | default(default_ilm_policy_file_location)) | default('') }}"
|
||||
|
@ -88,6 +88,10 @@
|
||||
notify:
|
||||
- Enable and restart journalbeat
|
||||
|
||||
- include_role:
|
||||
name: elastic_ilm
|
||||
when: ilm_policy.keys() | length > 0
|
||||
|
||||
- name: Run the beat setup role
|
||||
include_role:
|
||||
name: elastic_beat_setup
|
||||
|
@ -768,7 +768,12 @@ processors:
|
||||
|
||||
# Configure rollover index pattern.
|
||||
#setup.ilm.pattern: "{now/d}-000001"
|
||||
|
||||
{% if ilm_policy_name is defined %}
|
||||
setup.ilm.policy_name: "{{ ilm_policy_name }}"
|
||||
{% endif %}
|
||||
{% if ilm_policy_file_location is defined %}
|
||||
setup.ilm.policy_file: "{{ ilm_policy_file_location }}/{{ ilm_policy_filename }}"
|
||||
{% endif %}
|
||||
|
||||
#============================== Kibana =====================================
|
||||
{% if (groups['kibana'] | length) > 0 %}
|
||||
|
@ -22,3 +22,14 @@ metricbeat_service_state: restarted
|
||||
# Inventory group to configure metricbeat ceph monitoring
|
||||
# via either ceph-restapi or mgr prometheus module
|
||||
ceph_metricbeat_group: cinder_volume
|
||||
|
||||
metricbeat_ilm_policy_name: "metricbeat-{{ beat_version }}"
|
||||
metricbeat_ilm_policy_template: "metricbeat-{{ beat_version }}"
|
||||
metricbeat_ilm_policy_filename: "metricbeat-ilm-policy.json"
|
||||
metricbeat_ilm_policy_file_location: "/etc/metricbeat"
|
||||
|
||||
ilm_policy_name: "{{ metricbeat_ilm_policy_name | default('') }}"
|
||||
ilm_policy: "{{ (metricbeat_ilm_policy | default(default_ilm_policy)) | default({}) }}"
|
||||
ilm_policy_template: "{{ metricbeat_ilm_policy_template | default('') }}"
|
||||
ilm_policy_filename: "{{ (metricbeat_ilm_policy_filename | default(default_ilm_policy_filename)) | default('') }}"
|
||||
ilm_policy_file_location: "{{ (metricbeat_ilm_policy_file_location | default(default_ilm_policy_file_location)) | default('') }}"
|
||||
|
@ -305,6 +305,10 @@
|
||||
notify:
|
||||
- Enable and restart metricbeat
|
||||
|
||||
- include_role:
|
||||
name: elastic_ilm
|
||||
when: ilm_policy.keys() | length > 0
|
||||
|
||||
- name: Run the beat setup role
|
||||
include_role:
|
||||
name: elastic_beat_setup
|
||||
|
@ -1479,7 +1479,12 @@ processors:
|
||||
|
||||
# Configure rollover index pattern.
|
||||
#setup.ilm.pattern: "{now/d}-000001"
|
||||
|
||||
{% if ilm_policy_name is defined %}
|
||||
setup.ilm.policy_name: "{{ ilm_policy_name }}"
|
||||
{% endif %}
|
||||
{% if ilm_policy_file_location is defined %}
|
||||
setup.ilm.policy_file: "{{ ilm_policy_file_location }}/{{ ilm_policy_filename }}"
|
||||
{% endif %}
|
||||
|
||||
#============================== Kibana =====================================
|
||||
{% if (groups['kibana'] | length) > 0 %}
|
||||
|
@ -14,3 +14,14 @@
|
||||
# limitations under the License.
|
||||
|
||||
packetbeat_service_state: restarted
|
||||
|
||||
packetbeat_ilm_policy_name: "packetbeat-{{ beat_version }}"
|
||||
packetbeat_ilm_policy_template: "packetbeat-{{ beat_version }}"
|
||||
packetbeat_ilm_policy_filename: "packetbeat-ilm-policy.json"
|
||||
packetbeat_ilm_policy_file_location: "/etc/packetbeat"
|
||||
|
||||
ilm_policy_name: "{{ packetbeat_ilm_policy_name | default('') }}"
|
||||
ilm_policy: "{{ (packetbeat_ilm_policy | default(default_ilm_policy)) | default({}) }}"
|
||||
ilm_policy_template: "{{ packetbeat_ilm_policy_template | default('') }}"
|
||||
ilm_policy_filename: "{{ (packetbeat_ilm_policy_filename | default(default_ilm_policy_filename)) | default('') }}"
|
||||
ilm_policy_file_location: "{{ (packetbeat_ilm_policy_file_location | default(default_ilm_policy_file_location)) | default('') }}"
|
||||
|
@ -73,6 +73,10 @@
|
||||
notify:
|
||||
- Enable and restart packetbeat
|
||||
|
||||
- include_role:
|
||||
name: elastic_ilm
|
||||
when: ilm_policy.keys() | length > 0
|
||||
|
||||
- name: Run the beat setup role
|
||||
include_role:
|
||||
name: elastic_beat_setup
|
||||
|
@ -1204,7 +1204,12 @@ processors:
|
||||
|
||||
# Configure rollover index pattern.
|
||||
#setup.ilm.pattern: "{now/d}-000001"
|
||||
|
||||
{% if ilm_policy_name is defined %}
|
||||
setup.ilm.policy_name: "{{ ilm_policy_name }}"
|
||||
{% endif %}
|
||||
{% if ilm_policy_file_location is defined %}
|
||||
setup.ilm.policy_file: "{{ ilm_policy_file_location }}/{{ ilm_policy_filename }}"
|
||||
{% endif %}
|
||||
|
||||
#============================== Kibana =====================================
|
||||
{% if (groups['kibana'] | length) > 0 %}
|
||||
|
@ -411,3 +411,22 @@ elastic_beats:
|
||||
hosts: "{{ (groups['nova_compute'] | default([])) | union((groups['utility_all'] | default([]))) | union((groups['memcached_all'] | default([]))) }}"
|
||||
skydive:
|
||||
hosts: "{{ (((groups['skydive_analyzers'] | default([])) | length) > 0) | ternary((groups['hosts'] | default([])), []) }}"
|
||||
|
||||
beat_version: "7.3.2"
|
||||
default_ilm_rollover_max_size: "30G"
|
||||
default_ilm_rollover_max_age: "15d"
|
||||
default_ilm_delete_min_age: "30d"
|
||||
default_ilm_policy:
|
||||
policy:
|
||||
phases:
|
||||
hot:
|
||||
actions:
|
||||
rollover:
|
||||
max_size: "{{ default_ilm_rollover_max_size }}"
|
||||
max_age: "{{ default_ilm_rollover_max_age }}"
|
||||
delete:
|
||||
min_age: "{{ default_ilm_delete_min_age }}"
|
||||
actions:
|
||||
delete: {}
|
||||
default_ilm_policy_filename: "default-ilm-policy.json"
|
||||
default_ilm_policy_file_location: "/tmp"
|
||||
|
Loading…
Reference in New Issue
Block a user