diff --git a/create-kibana-objects.yml b/create-kibana-objects.yml index f80656c..68f9bb8 100644 --- a/create-kibana-objects.yml +++ b/create-kibana-objects.yml @@ -121,12 +121,57 @@ - actions - osquery - 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: + - 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 ... " include_role: name: kibana @@ -176,8 +221,7 @@ vars: es_space: *es_space_name es_indexpattern_title: '{{ es_indexpattern_name }}' - es_index_pattern_tenant_uuid: '{{ es_index_pattern_tenant | to_uuid }}' - es_panel_uuid: "{{ 'panel_' + es_dashboard_name | to_uuid }}" + es_panel_uuid: "{{ 'panel_' + elastic_dashboard_name | to_uuid }}" tags: - es-importobjects diff --git a/pmci-kibana-create-objects.yml b/pmci-kibana-create-objects.yml index 3f0492f..1da5230 100644 --- a/pmci-kibana-create-objects.yml +++ b/pmci-kibana-create-objects.yml @@ -104,12 +104,57 @@ - actions - osquery - 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: + - 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 ... " include_role: name: kibana @@ -159,8 +204,7 @@ vars: es_space: *es_space_name es_indexpattern_title: '{{ es_indexpattern_name }}' - es_index_pattern_tenant_uuid: '{{ es_index_pattern_tenant | to_uuid }}' - es_panel_uuid: "{{ 'panel_' + es_dashboard_name | to_uuid }}" + es_panel_uuid: "{{ 'panel_' + elastic_dashboard_name | to_uuid }}" tags: - es-importobjects diff --git a/roles/kibana/tasks/_import_savedobjects.yml b/roles/kibana/tasks/_import_savedobjects.yml index 25301dd..fc74ff2 100644 --- a/roles/kibana/tasks/_import_savedobjects.yml +++ b/roles/kibana/tasks/_import_savedobjects.yml @@ -1,14 +1,18 @@ --- - name: "Importing kibana objects to <{{ shared_service_url_kibana }}>" include_tasks: import_service_ojects.yml - loop: "{{ es_index_pattern_services }}" + loop: "{{ elastic_index_patterns }}" loop_control: - label: "{{ es_index_pattern_service.id }}" - loop_var: es_index_pattern_service + label: "{{ elastic_index_pattern.id }}" + loop_var: elastic_index_pattern when: - - cluster_name is defined + - elastic_index_patterns is defined - 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 uri: url: "{{ shared_service_url_kibana }}/s/{{ stage }}-{{ tenant_id }}/api/kibana/settings" @@ -22,8 +26,8 @@ body_format: json body: changes: - defaultIndex: '{{ es_index_pattern_tenant_uuid }}' + defaultIndex: "{{ elastic_default_index }}" become: false when: - - cluster_name is defined - elastic_state == 'present' + - elastic_index_patterns is defined diff --git a/roles/kibana/tasks/import_service_ojects.yml b/roles/kibana/tasks/import_service_ojects.yml index a2b96ef..55e9bf0 100644 --- a/roles/kibana/tasks/import_service_ojects.yml +++ b/roles/kibana/tasks/import_service_ojects.yml @@ -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: api_path: '/s/{{ es_space }}/api/saved_objects' - es_search_name: '{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ es_index_pattern_service.name }}' - es_dashboard_name: '{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ es_index_pattern_service.name }}' - es_container_name: '{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-01-{{ es_index_pattern_service.name }}' + elastic_search_name: "{{ elastic_index_pattern.search_name }}" + elastic_dashboard_name: "{{ elastic_index_pattern.dashboard_name }}" + elastic_index_pattern_uuid: "{{ elastic_index_pattern.id | to_uuid }}" - name: "Importing smardigo default dashboard and its related objects (index-pattern,search,...)" delegate_to: localhost 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_dashboard: "{{ lookup('template','smardigo_dashboard.json.j2') }}" + es_object_smardigo_index_pattern: "{{ lookup('template','smardigo_index_pattern.json.j2') }}" when: - elastic_state == 'present' @@ -22,10 +26,9 @@ dest: '/tmp/es_objects_ready_to_import__objects.ndjson' mode: '0644' 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_dashboard | to_json(separators=(',',':')) }} + {{ es_object_smardigo_index_pattern | to_json(separators=(',',':')) }} when: - elastic_state == 'present' diff --git a/roles/kibana/tasks/tmp.json b/roles/kibana/tasks/tmp.json new file mode 100644 index 0000000..52eda33 --- /dev/null +++ b/roles/kibana/tasks/tmp.json @@ -0,0 +1 @@ +{"query":{"query":"","language":"kuery"},"filter":[],"indexRefName":"kibanaSavedObjectMeta.searchSourceJSON.index"} \ No newline at end of file diff --git a/roles/kibana/templates/smardigo_dashboard.json.j2 b/roles/kibana/templates/smardigo_dashboard.json.j2 index 3e9f190..f6cc81a 100644 --- a/roles/kibana/templates/smardigo_dashboard.json.j2 +++ b/roles/kibana/templates/smardigo_dashboard.json.j2 @@ -8,16 +8,16 @@ "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 }}\"}]", "timeRestore" : false, - "title" : "{{ es_dashboard_name }}", + "title" : "{{ elastic_dashboard_name }}", "version" : 1 }, "coreMigrationVersion" : "7.16.1", - "id" : "{{ es_dashboard_name | to_uuid }}", + "id" : "{{ elastic_dashboard_name | to_uuid }}", "migrationVersion" : { "dashboard" : "7.16.0" }, "references" : [ { - "id" : "{{ es_search_name | to_uuid }}", + "id" : "{{ elastic_search_name | to_uuid }}", "name" : "{{ es_panel_uuid }}:panel_{{ es_panel_uuid }}", "type" : "search" } ], diff --git a/roles/kibana/templates/smardigo_index_pattern_tenant.json.j2 b/roles/kibana/templates/smardigo_index_pattern.json.j2 similarity index 78% rename from roles/kibana/templates/smardigo_index_pattern_tenant.json.j2 rename to roles/kibana/templates/smardigo_index_pattern.json.j2 index 8736ebe..6650d43 100644 --- a/roles/kibana/templates/smardigo_index_pattern_tenant.json.j2 +++ b/roles/kibana/templates/smardigo_index_pattern.json.j2 @@ -4,11 +4,11 @@ "fields" : "[]", "runtimeFieldMap" : "{}", "timeFieldName" : "@timestamp", - "title" : "{{ es_index_pattern_tenant }}", + "title" : "{{ elastic_index_pattern.id }}", "typeMeta" : "{}" }, "coreMigrationVersion" : "7.16.1", - "id" : "{{ es_index_pattern_tenant_uuid }}", + "id" : "{{ elastic_index_pattern_uuid }}", "migrationVersion" : { "index-pattern" : "7.11.0" }, diff --git a/roles/kibana/templates/smardigo_index_pattern_service.json.j2 b/roles/kibana/templates/smardigo_index_pattern_service.json.j2 deleted file mode 100644 index fcaf638..0000000 --- a/roles/kibana/templates/smardigo_index_pattern_service.json.j2 +++ /dev/null @@ -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" -} \ No newline at end of file diff --git a/roles/kibana/templates/smardigo_search.json.j2 b/roles/kibana/templates/smardigo_search.json.j2 index 057462c..6b1d0f0 100644 --- a/roles/kibana/templates/smardigo_search.json.j2 +++ b/roles/kibana/templates/smardigo_search.json.j2 @@ -2,25 +2,30 @@ "attributes" : { "columns" : [ "message_full" ], "description" : "", - "grid" : { - }, + "grid" : {}, "hideChart" : false, "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", - "desc" ] ], - "title" : "{{ es_search_name }}" + "sort" : [ + [ + "@timestamp", + "desc" + ] + ], + "title" : "{{ elastic_search_name }}" }, "coreMigrationVersion" : "7.16.1", - "id" : "{{ es_search_name | to_uuid }}", + "id" : "{{ elastic_search_name | to_uuid }}", "migrationVersion" : { "search" : "7.9.3" }, - "references" : [ { - "id" : "{{ es_index_pattern_service.id | to_uuid }}", + "references" : [ + { + "id" : "{{ elastic_index_pattern_uuid }}", "name" : "kibanaSavedObjectMeta.searchSourceJSON.index", "type" : "index-pattern" - } ], + } + ], "type" : "search" } \ No newline at end of file