diff --git a/ansible/roles/kibana/tasks/config.yml b/ansible/roles/kibana/tasks/config.yml
index ae23521e1076d7764da5786e84af6c6e0827ba29..6ef0ebdd92d78e1c3fcf4ca987d463c8eca01307 100644
--- a/ansible/roles/kibana/tasks/config.yml
+++ b/ansible/roles/kibana/tasks/config.yml
@@ -26,17 +26,22 @@
   notify:
     - Restart kibana container
 
-- name: Copying over Kibana configuration file
+- name: Copying over kibana configuration file
+  vars:
+    kibana: "{{ kibana_services.kibana }}"
   template:
-    src: "{{ item.key }}.yml.j2"
-    dest: "{{ node_config_directory }}/{{ item.key }}/{{ item.key }}.yml"
+    src: "kibana.yml.j2"
+    dest: "{{ node_config_directory }}/kibana/kibana.yml"
     mode: "0660"
   become: true
   register: kibana_confs
+  with_first_found:
+    - "{{ node_custom_config }}/kibana/{{ inventory_hostname }}/kibana.yml"
+    - "{{ node_custom_config }}/kibana/kibana.yml"
+    - "kibana.yml.j2"
   when:
-    - inventory_hostname in groups[item.value.group]
-    - item.value.enabled | bool
-  with_dict: "{{ kibana_services }}"
+    - inventory_hostname in groups[kibana.group]
+    - kibana.enabled | bool
   notify:
     - Restart kibana container
 
diff --git a/releasenotes/notes/kibana-custom-config-74afd6ddee462ed8.yaml b/releasenotes/notes/kibana-custom-config-74afd6ddee462ed8.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..327df3b8fe3721b5fc6a1976066bb41174496a79
--- /dev/null
+++ b/releasenotes/notes/kibana-custom-config-74afd6ddee462ed8.yaml
@@ -0,0 +1,3 @@
+---
+features:
+  - Adds ability to provide a custom kibana config.