diff --git a/roles/build/templates/zookeeper/Dockerfile.j2 b/roles/build/templates/zookeeper/Dockerfile.j2
index 1ac8a58f59b5e0e95ee9a2f85d166be84fa2c6e2..19ae977882802ec3725ce8f7875b4801786153cf 100644
--- a/roles/build/templates/zookeeper/Dockerfile.j2
+++ b/roles/build/templates/zookeeper/Dockerfile.j2
@@ -31,6 +31,6 @@ WORKDIR ${ZOOKEEPER_BASE_DIR}/zookeeper
 
 #ENTRYPOINT ["/opt/zookeeper/bin/zkServer.sh"]
 #CMD ["start-foreground"]
-RUN yum install supervisor -y
+RUN yum install supervisor rsync -y
 COPY zookeepersupervisord.conf /etc/supervisord.conf
 ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
diff --git a/roles/filebeat/tasks/main.yml b/roles/filebeat/tasks/main.yml
index 2ae0966d316066c5ec234dde0bedc21548532f93..02ac9c7ed8c8f4eba2c4a99295202d1acbd72090 100644
--- a/roles/filebeat/tasks/main.yml
+++ b/roles/filebeat/tasks/main.yml
@@ -1,30 +1,17 @@
 ---
-# tasks file for filebeat
 
-- name: Copy filebeat certificates
-  copy:
-    src:  "{{ item }}"
-    dest: "/opt/filebeat/"
-    mode: 0600
-  with_items:
-    - "{{playbook_dir}}/secrets/CA/issued/filebeat.crt"
-    - "{{playbook_dir}}/secrets/CA/private/filebeat.key"
-  become: true
+- include: start.yml
   tags:
-    - start
-
-- name: Copy filebeat configuration file
-  template:
-    src: filebeat.yml.j2
-    dest: /opt/filebeat/filebeat.yml
-  become: true
+   - start
+- include: stop.yml
   tags:
-    - start
-
-- name: Start filebeat
-  remote_user: root
-  shell: "supervisorctl restart filebeat"
-  ignore_errors: yes
+   - stop
+   - stop-filebeat
+- include: update-config.yml
+  tags:
+   - update-config
+   - update-filebeat-config
+- include: restart.yml
   tags:
-    - start
-  
+   - restart
+   - restart-filebeat
diff --git a/roles/filebeat/tasks/restart.yml b/roles/filebeat/tasks/restart.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cf2c893fe05c07d269572def4184a8d920ce33fe
--- /dev/null
+++ b/roles/filebeat/tasks/restart.yml
@@ -0,0 +1,8 @@
+---
+# tasks file for filebeat
+
+- name: Restart filebeat
+  remote_user: root
+  shell: "supervisorctl restart filebeat"
+  ignore_errors: yes
+  
diff --git a/roles/filebeat/tasks/start.yml b/roles/filebeat/tasks/start.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1944c1f0ec815b4c1075035fc4dc77c2b948f926
--- /dev/null
+++ b/roles/filebeat/tasks/start.yml
@@ -0,0 +1,23 @@
+---
+# tasks file for filebeat
+
+- name: Copy filebeat certificates
+  copy:
+    src:  "{{ item }}"
+    dest: "/opt/filebeat/"
+    mode: 0600
+  with_items:
+    - "{{playbook_dir}}/secrets/CA/issued/filebeat.crt"
+    - "{{playbook_dir}}/secrets/CA/private/filebeat.key"
+  become: true
+
+- name: Copy filebeat configuration file
+  template:
+    src: filebeat.yml.j2
+    dest: /opt/filebeat/filebeat.yml
+  become: true
+
+- name: Restart filebeat
+  remote_user: root
+  shell: "supervisorctl restart filebeat"
+  ignore_errors: yes
diff --git a/roles/filebeat/tasks/stop.yml b/roles/filebeat/tasks/stop.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c5d5dd69d19ba5d40666fe28af612d1363f45f41
--- /dev/null
+++ b/roles/filebeat/tasks/stop.yml
@@ -0,0 +1,8 @@
+---
+# tasks file for filebeat
+
+- name: Stop filebeat
+  remote_user: root
+  shell: "supervisorctl stop filebeat"
+  ignore_errors: yes
+
diff --git a/roles/filebeat/tasks/update-config.yml b/roles/filebeat/tasks/update-config.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a4c4e304854c954ebb6129b08077d5aef10ced0b
--- /dev/null
+++ b/roles/filebeat/tasks/update-config.yml
@@ -0,0 +1,9 @@
+---
+# tasks file for filebeat
+
+- name: Copy filebeat configuration file
+  template:
+    src: filebeat.yml.j2
+    dest: /opt/filebeat/filebeat.yml
+  become: true
+