[kibana] enforce index creation for ELK > 5 (debian)

The default index isn't created automatically when using
ELK > 5.x. This commit adds a new task into the post-deploy
taskset to force the creation of the default index.

This patch also enforces the kibana config to set index
as defaultIndex without the need for the defaultIndex property
to already exists , preventing the error exposed on the public bug.

Also added a new option named kibana_default_index_options, with
a default index.mapper.dynamic set to true, this option
can be extended by the operator and they will be applied to the index.

Change-Id: Ica63a5fb30947f7ebae6cf8c80500a7dd0907211
Closes-Bug: #1772687
Signed-off-by: Jorge Niedbalski <jorge.niedbalski@linaro.org>
This commit is contained in:
Jorge Niedbalski 2018-05-22 17:55:56 -04:00
parent 2ca94a62d1
commit 317a107988
3 changed files with 22 additions and 34 deletions

View File

@ -18,3 +18,4 @@ path.data: "/var/lib/elasticsearch/data"
path.logs: "/var/log/kolla/elasticsearch"
path.scripts: "/etc/elasticsearch/scripts"
indices.fielddata.cache.size: 40%
action.auto_create_index: "true"

View File

@ -29,7 +29,8 @@ kibana_default_index_pattern: "{{ kibana_log_prefix }}-*"
kibana_default_index:
title: "{{ kibana_default_index_pattern }}"
timeFieldName: "@timestamp"
kibana_default_index_options:
index.mapper.dynamic: true
####################
# Docker

View File

@ -5,6 +5,15 @@
port: "{{ kibana_server_port }}"
run_once: true
- name: Register the kibana index in elasticsearch
uri:
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana"
method: PUT
body: "{{ kibana_default_index_options | to_json }}"
body_format: json
status_code: 200, 201
run_once: true
- name: Wait for kibana to register in elasticsearch
uri:
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana"
@ -15,6 +24,16 @@
delay: 2
run_once: true
- name: Change kibana config to set index as defaultIndex
uri:
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana/config/*"
method: PUT
body:
defaultIndex: "{{ kibana_default_index_pattern }}"
body_format: json
status_code: 200, 201
run_once: true
- name: Get kibana default indexes
uri:
HEADER_Content-Type: application/json
@ -44,36 +63,3 @@
- kibana_default_index is defined
- kibana_default_indexes is defined
- kibana_default_indexes['.kibana']['mappings']['config']['properties']['defaultIndex'] is not defined
- name: Find kibana version
command: docker exec -t kibana /opt/kibana/bin/kibana --version
register: kibana_version
run_once: true
changed_when: true
when:
- kibana_default_index is defined
- kibana_default_indexes is defined
- kibana_default_indexes['.kibana']['mappings']['config']['properties']['defaultIndex'] is not defined
- set_fact:
kibana_version: "{{ kibana_version.stdout }}"
run_once: true
connection: local
when:
- kibana_default_index is defined
- kibana_default_indexes is defined
- kibana_default_indexes['.kibana']['mappings']['config']['properties']['defaultIndex'] is not defined
- name: Change kibana config to set index as defaultIndex
uri:
url: "http://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana/config/{{ kibana_version }}"
method: PUT
body:
defaultIndex: "{{ kibana_default_index_pattern }}"
body_format: json
status_code: 200
run_once: true
when:
- kibana_default_index is defined
- kibana_default_indexes is defined
- kibana_default_indexes['.kibana']['mappings']['config']['properties']['defaultIndex'] is not defined