bugfix: rework of kibana objects

- consolidation of default index
- cluster_name is optional
- cluster_service is optional
main
Sven Ketelsen 2 years ago
parent 5e909c6375
commit 7dd094b83d

@ -121,12 +121,57 @@
- actions - actions
- osquery - osquery
- savedObjectsTagging - savedObjectsTagging
es_index_pattern_tenant: '{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*'
es_index_pattern_services:
- id: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*-{{ cluster_service }}-*"
name: "{{ cluster_service }}"
tasks: tasks:
- name: "Create Index Pattern for <{{ stage }}-{{ tenant_id }}-*>"
set_fact:
es_index_pattern_tenant: '{{ stage }}-{{ tenant_id }}-*'
elastic_index_patterns:
- id: "{{ stage }}-{{ tenant_id }}-*"
name: "{{ stage }}-{{ tenant_id }}"
search_name: "{{ stage }}-{{ tenant_id }}-*"
dashboard_name: "{{ stage }}-{{ tenant_id }}-*"
with_container_filter: false
when:
- cluster_name is not defined
- cluster_service is not defined
- name: "Create Index Pattern for <{{ stage }}-{{ tenant_id }}-{{ cluster_name }}>"
set_fact:
es_index_pattern_tenant: '{{ stage }}-{{ tenant_id }}-*'
elastic_index_patterns:
- id: "{{ stage }}-{{ tenant_id }}-*"
name: "{{ stage }}-{{ tenant_id }}"
search_name: "{{ stage }}-{{ tenant_id }}-*"
dashboard_name: "{{ stage }}-{{ tenant_id }}-*"
- id: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*"
name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}"
search_name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*"
dashboard_name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*"
when:
- cluster_name is defined
- cluster_service is not defined
- name: "Create Index Pattern for <{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ cluster_service }}>"
set_fact:
es_index_pattern_tenant: ''
elastic_index_patterns:
- id: "{{ stage }}-{{ tenant_id }}-*"
name: "{{ stage }}-{{ tenant_id }}"
search_name: "{{ stage }}-{{ tenant_id }}-*"
dashboard_name: "{{ stage }}-{{ tenant_id }}-*"
- id: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*"
name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}"
search_name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*"
dashboard_name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*"
- id: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*-{{ cluster_service }}-*"
name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ cluster_service }}"
search_name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ cluster_service }}-*"
dashboard_name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ cluster_service }}-*"
when:
- cluster_service is defined
- cluster_name is defined
- name: "Do some stuff in elastic with spaces ... " - name: "Do some stuff in elastic with spaces ... "
include_role: include_role:
name: kibana name: kibana
@ -176,8 +221,7 @@
vars: vars:
es_space: *es_space_name es_space: *es_space_name
es_indexpattern_title: '{{ es_indexpattern_name }}' es_indexpattern_title: '{{ es_indexpattern_name }}'
es_index_pattern_tenant_uuid: '{{ es_index_pattern_tenant | to_uuid }}' es_panel_uuid: "{{ 'panel_' + elastic_dashboard_name | to_uuid }}"
es_panel_uuid: "{{ 'panel_' + es_dashboard_name | to_uuid }}"
tags: tags:
- es-importobjects - es-importobjects

@ -104,12 +104,57 @@
- actions - actions
- osquery - osquery
- savedObjectsTagging - savedObjectsTagging
es_index_pattern_tenant: '{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*'
es_index_pattern_services:
- id: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*-{{ cluster_service }}-*"
name: "{{ cluster_service }}"
tasks: tasks:
- name: "Create Index Pattern for <{{ stage }}-{{ tenant_id }}-*>"
set_fact:
es_index_pattern_tenant: '{{ stage }}-{{ tenant_id }}-*'
elastic_index_patterns:
- id: "{{ stage }}-{{ tenant_id }}-*"
name: "{{ stage }}-{{ tenant_id }}"
search_name: "{{ stage }}-{{ tenant_id }}-*"
dashboard_name: "{{ stage }}-{{ tenant_id }}-*"
with_container_filter: false
when:
- cluster_name is not defined
- cluster_service is not defined
- name: "Create Index Pattern for <{{ stage }}-{{ tenant_id }}-{{ cluster_name }}>"
set_fact:
es_index_pattern_tenant: '{{ stage }}-{{ tenant_id }}-*'
elastic_index_patterns:
- id: "{{ stage }}-{{ tenant_id }}-*"
name: "{{ stage }}-{{ tenant_id }}"
search_name: "{{ stage }}-{{ tenant_id }}-*"
dashboard_name: "{{ stage }}-{{ tenant_id }}-*"
- id: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*"
name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}"
search_name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*"
dashboard_name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*"
when:
- cluster_name is defined
- cluster_service is not defined
- name: "Create Index Pattern for <{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ cluster_service }}>"
set_fact:
es_index_pattern_tenant: ''
elastic_index_patterns:
- id: "{{ stage }}-{{ tenant_id }}-*"
name: "{{ stage }}-{{ tenant_id }}"
search_name: "{{ stage }}-{{ tenant_id }}-*"
dashboard_name: "{{ stage }}-{{ tenant_id }}-*"
- id: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*"
name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}"
search_name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*"
dashboard_name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*"
- id: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*-{{ cluster_service }}-*"
name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ cluster_service }}"
search_name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ cluster_service }}-*"
dashboard_name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ cluster_service }}-*"
when:
- cluster_service is defined
- cluster_name is defined
- name: "Do some stuff in elastic with spaces ... " - name: "Do some stuff in elastic with spaces ... "
include_role: include_role:
name: kibana name: kibana
@ -159,8 +204,7 @@
vars: vars:
es_space: *es_space_name es_space: *es_space_name
es_indexpattern_title: '{{ es_indexpattern_name }}' es_indexpattern_title: '{{ es_indexpattern_name }}'
es_index_pattern_tenant_uuid: '{{ es_index_pattern_tenant | to_uuid }}' es_panel_uuid: "{{ 'panel_' + elastic_dashboard_name | to_uuid }}"
es_panel_uuid: "{{ 'panel_' + es_dashboard_name | to_uuid }}"
tags: tags:
- es-importobjects - es-importobjects

@ -1,14 +1,18 @@
--- ---
- name: "Importing kibana objects to <{{ shared_service_url_kibana }}>" - name: "Importing kibana objects to <{{ shared_service_url_kibana }}>"
include_tasks: import_service_ojects.yml include_tasks: import_service_ojects.yml
loop: "{{ es_index_pattern_services }}" loop: "{{ elastic_index_patterns }}"
loop_control: loop_control:
label: "{{ es_index_pattern_service.id }}" label: "{{ elastic_index_pattern.id }}"
loop_var: es_index_pattern_service loop_var: elastic_index_pattern
when: when:
- cluster_name is defined - elastic_index_patterns is defined
- name: "Setting default index pattern" - name: "Setting default index pattern"
set_fact:
elastic_default_index: "{{ elastic_index_patterns | first | map(attribute='id') | to_uuid }}"
- name: "Setting default index to <{{ elastic_default_index }}>"
delegate_to: localhost delegate_to: localhost
uri: uri:
url: "{{ shared_service_url_kibana }}/s/{{ stage }}-{{ tenant_id }}/api/kibana/settings" url: "{{ shared_service_url_kibana }}/s/{{ stage }}-{{ tenant_id }}/api/kibana/settings"
@ -22,8 +26,8 @@
body_format: json body_format: json
body: body:
changes: changes:
defaultIndex: '{{ es_index_pattern_tenant_uuid }}' defaultIndex: "{{ elastic_default_index }}"
become: false become: false
when: when:
- cluster_name is defined
- elastic_state == 'present' - elastic_state == 'present'
- elastic_index_patterns is defined

@ -1,18 +1,22 @@
--- ---
- name: "Initializing service variables for <{{ es_index_pattern_service.name }}>" - name: "Printing access_token for keycloak server"
debug:
msg:
- "{{ elastic_index_pattern }}"
- name: "Initializing service variables for <{{ elastic_index_pattern.name }}>"
set_fact: set_fact:
api_path: '/s/{{ es_space }}/api/saved_objects' api_path: '/s/{{ es_space }}/api/saved_objects'
es_search_name: '{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ es_index_pattern_service.name }}' elastic_search_name: "{{ elastic_index_pattern.search_name }}"
es_dashboard_name: '{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ es_index_pattern_service.name }}' elastic_dashboard_name: "{{ elastic_index_pattern.dashboard_name }}"
es_container_name: '{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-01-{{ es_index_pattern_service.name }}' elastic_index_pattern_uuid: "{{ elastic_index_pattern.id | to_uuid }}"
- name: "Importing smardigo default dashboard and its related objects (index-pattern,search,...)" - name: "Importing smardigo default dashboard and its related objects (index-pattern,search,...)"
delegate_to: localhost delegate_to: localhost
set_fact: set_fact:
es_object_smardigo_index_pattern_tenant: "{{ lookup('template','smardigo_index_pattern_tenant.json.j2') }}"
es_object_smardigo_index_pattern_service: "{{ lookup('template','smardigo_index_pattern_service.json.j2') }}"
es_object_smardigo_search: "{{ lookup('template','smardigo_search.json.j2') }}" es_object_smardigo_search: "{{ lookup('template','smardigo_search.json.j2') }}"
es_object_smardigo_dashboard: "{{ lookup('template','smardigo_dashboard.json.j2') }}" es_object_smardigo_dashboard: "{{ lookup('template','smardigo_dashboard.json.j2') }}"
es_object_smardigo_index_pattern: "{{ lookup('template','smardigo_index_pattern.json.j2') }}"
when: when:
- elastic_state == 'present' - elastic_state == 'present'
@ -22,10 +26,9 @@
dest: '/tmp/es_objects_ready_to_import__objects.ndjson' dest: '/tmp/es_objects_ready_to_import__objects.ndjson'
mode: '0644' mode: '0644'
content: | content: |
{{ es_object_smardigo_index_pattern_tenant | to_json(separators=(',',':')) }}
{{ es_object_smardigo_index_pattern_service | to_json(separators=(',',':')) }}
{{ es_object_smardigo_search | to_json(separators=(',',':')) }} {{ es_object_smardigo_search | to_json(separators=(',',':')) }}
{{ es_object_smardigo_dashboard | to_json(separators=(',',':')) }} {{ es_object_smardigo_dashboard | to_json(separators=(',',':')) }}
{{ es_object_smardigo_index_pattern | to_json(separators=(',',':')) }}
when: when:
- elastic_state == 'present' - elastic_state == 'present'

@ -0,0 +1 @@
{"query":{"query":"","language":"kuery"},"filter":[],"indexRefName":"kibanaSavedObjectMeta.searchSourceJSON.index"}

@ -8,16 +8,16 @@
"optionsJSON" : "{\"useMargins\":true,\"syncColors\":false,\"hidePanelTitles\":false}", "optionsJSON" : "{\"useMargins\":true,\"syncColors\":false,\"hidePanelTitles\":false}",
"panelsJSON" : "[{\"version\":\"7.16.1\",\"type\":\"search\",\"gridData\":{\"x\":0,\"y\":0,\"w\":50,\"h\":50,\"i\":\"{{ es_panel_uuid }}\"},\"panelIndex\":\"{{ es_panel_uuid }}\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_{{ es_panel_uuid }}\"}]", "panelsJSON" : "[{\"version\":\"7.16.1\",\"type\":\"search\",\"gridData\":{\"x\":0,\"y\":0,\"w\":50,\"h\":50,\"i\":\"{{ es_panel_uuid }}\"},\"panelIndex\":\"{{ es_panel_uuid }}\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_{{ es_panel_uuid }}\"}]",
"timeRestore" : false, "timeRestore" : false,
"title" : "{{ es_dashboard_name }}", "title" : "{{ elastic_dashboard_name }}",
"version" : 1 "version" : 1
}, },
"coreMigrationVersion" : "7.16.1", "coreMigrationVersion" : "7.16.1",
"id" : "{{ es_dashboard_name | to_uuid }}", "id" : "{{ elastic_dashboard_name | to_uuid }}",
"migrationVersion" : { "migrationVersion" : {
"dashboard" : "7.16.0" "dashboard" : "7.16.0"
}, },
"references" : [ { "references" : [ {
"id" : "{{ es_search_name | to_uuid }}", "id" : "{{ elastic_search_name | to_uuid }}",
"name" : "{{ es_panel_uuid }}:panel_{{ es_panel_uuid }}", "name" : "{{ es_panel_uuid }}:panel_{{ es_panel_uuid }}",
"type" : "search" "type" : "search"
} ], } ],

@ -4,11 +4,11 @@
"fields" : "[]", "fields" : "[]",
"runtimeFieldMap" : "{}", "runtimeFieldMap" : "{}",
"timeFieldName" : "@timestamp", "timeFieldName" : "@timestamp",
"title" : "{{ es_index_pattern_tenant }}", "title" : "{{ elastic_index_pattern.id }}",
"typeMeta" : "{}" "typeMeta" : "{}"
}, },
"coreMigrationVersion" : "7.16.1", "coreMigrationVersion" : "7.16.1",
"id" : "{{ es_index_pattern_tenant_uuid }}", "id" : "{{ elastic_index_pattern_uuid }}",
"migrationVersion" : { "migrationVersion" : {
"index-pattern" : "7.11.0" "index-pattern" : "7.11.0"
}, },

@ -1,17 +0,0 @@
{
"attributes" : {
"fieldAttrs" : "{\"message_full\":{\"count\":1}}",
"fields" : "[]",
"runtimeFieldMap" : "{}",
"timeFieldName" : "@timestamp",
"title" : "{{ es_index_pattern_service.id }}",
"typeMeta" : "{}"
},
"coreMigrationVersion" : "7.16.1",
"id" : "{{ es_index_pattern_service.id | to_uuid }}",
"migrationVersion" : {
"index-pattern" : "7.11.0"
},
"references" : [ ],
"type" : "index-pattern"
}

@ -2,25 +2,30 @@
"attributes" : { "attributes" : {
"columns" : [ "message_full" ], "columns" : [ "message_full" ],
"description" : "", "description" : "",
"grid" : { "grid" : {},
},
"hideChart" : false, "hideChart" : false,
"kibanaSavedObjectMeta" : { "kibanaSavedObjectMeta" : {
"searchSourceJSON" : "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[{\"meta\":{\"alias\":null,\"negate\":false,\"disabled\":false,\"type\":\"phrase\",\"key\":\"container.name\",\"params\":{\"query\":\"{{ es_container_name }}\"}},\"query\":{\"match_phrase\":{\"container.name\":\"{{ es_container_name }}\"}},\"$state\":{\"store\":\"appState\"}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" "searchSourceJSON" : "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"
}, },
"sort" : [ [ "@timestamp", "sort" : [
"desc" ] ], [
"title" : "{{ es_search_name }}" "@timestamp",
"desc"
]
],
"title" : "{{ elastic_search_name }}"
}, },
"coreMigrationVersion" : "7.16.1", "coreMigrationVersion" : "7.16.1",
"id" : "{{ es_search_name | to_uuid }}", "id" : "{{ elastic_search_name | to_uuid }}",
"migrationVersion" : { "migrationVersion" : {
"search" : "7.9.3" "search" : "7.9.3"
}, },
"references" : [ { "references" : [
"id" : "{{ es_index_pattern_service.id | to_uuid }}", {
"id" : "{{ elastic_index_pattern_uuid }}",
"name" : "kibanaSavedObjectMeta.searchSourceJSON.index", "name" : "kibanaSavedObjectMeta.searchSourceJSON.index",
"type" : "index-pattern" "type" : "index-pattern"
} ], }
],
"type" : "search" "type" : "search"
} }
Loading…
Cancel
Save