diff --git a/inventories/filebeat b/inventories/filebeat
index 81047ba6bbb52b04ed3e0935a7b8ff439a9e6772..067871d702a8d20fc9f2642e21074ef9a9b1cc32 100644
--- a/inventories/filebeat
+++ b/inventories/filebeat
@@ -9,6 +9,7 @@ dsoclab-kibana ansible_connection=docker FILEBEAT_FILES='["/usr/share/kibana/kbl
 dsoclab-keycloak ansible_connection=docker FILEBEAT_FILES='["/var/log/supervisor/*.log"]' FILEBEAT_LOG_TYPE="keycloak" FILEBEAT_LOG_FORMAT="text"
 dsoclab-mysql ansible_connection=docker FILEBEAT_FILES='["/var/opt/rh/rh-mariadb103/log/mariadb/mariadb.log"]' FILEBEAT_LOG_TYPE="mysql" FILEBEAT_LOG_FORMAT="text"
 dsoclab-haproxy ansible_connection=docker FILEBEAT_SYSLOG_PORT=9000 FILEBEAT_LOG_TYPE="haproxy" FILEBEAT_LOG_FORMAT="text"
-#dsoclab-zookeeper ansible_connection=docker FILEBEAT_FILES='[""]'
+dsoclab-zookeeper ansible_connection=docker FILEBEAT_FILES='["/var/log/supervisor/*.log"]' FILEBEAT_LOG_TYPE="zookeeper" FILEBEAT_LOG_FORMAT="text"
 dsoclab-cortex ansible_connection=docker FILEBEAT_FILES='["/var/log/supervisor/*.log"]' FILEBEAT_LOG_TYPE="cortex" FILEBEAT_LOG_FORMAT="text"
 dsoclab-thehive ansible_connection=docker FILEBEAT_FILES='["/var/log/supervisor/*.log"]' FILEBEAT_LOG_TYPE="thehive" FILEBEAT_LOG_FORMAT="text"
+dsoclab-cassandra ansible_connection=docker FILEBEAT_FILES='["/var/log/supervisor/*.log"]' FILEBEAT_LOG_TYPE="cassandra" FILEBEAT_LOG_FORMAT="text"
diff --git a/roles/build/files/cassandrasupervisord.conf b/roles/build/files/cassandrasupervisord.conf
new file mode 100644
index 0000000000000000000000000000000000000000..fd57452d81e378adfb4a0ee5ba0efb60b8ebf46a
--- /dev/null
+++ b/roles/build/files/cassandrasupervisord.conf
@@ -0,0 +1,32 @@
+[unix_http_server]
+file=/tmp/supervisor.sock
+
+[supervisord]
+pidfile=/tmp/supervisord.pid
+nodaemon=true
+logfile=/var/log/supervisor/supervisord.log
+logfile_maxbytes=10MB
+logfile_backups=10
+loglevel=info
+childlogdir=/var/log/supervisor/
+
+[rpcinterface:supervisor]
+supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
+
+[supervisorctl]
+serverurl=unix:///tmp/supervisor.sock
+
+[program:cassandra]
+directory=/usr/share/cassandra
+user=cassandra
+group=cassandra
+environment = CASSANDRA_HOME="/usr/share/cassandra",CASSANDRA_CONF="/usr/share/cassandra/conf",CASSANDRA_INCLUDE="/usr/share/cassandra/cassandra.in.sh"
+command=/bin/bash -c '/usr/sbin/cassandra -f'
+autostart=false
+autorestart=true
+logfile_maxbytes=10MB
+stdout_logfile_backups = 0
+stderr_logfile_backups = 0
+stderr_logfile = /var/log/supervisor/cassandra_stderr.log
+stdout_logfile = /var/log/supervisor/cassandra_stdout.log
+
diff --git a/roles/build/files/zookeepersupervisord.conf b/roles/build/files/zookeepersupervisord.conf
new file mode 100644
index 0000000000000000000000000000000000000000..3a407c85495a93262e1b928690f0d179de58b903
--- /dev/null
+++ b/roles/build/files/zookeepersupervisord.conf
@@ -0,0 +1,30 @@
+[unix_http_server]
+file=/tmp/supervisor.sock
+
+[supervisord]
+pidfile=/tmp/supervisord.pid
+nodaemon=true
+logfile=/var/log/supervisor/supervisord.log
+logfile_maxbytes=10MB
+logfile_backups=10
+loglevel=info
+childlogdir=/var/log/supervisor/
+
+[rpcinterface:supervisor]
+supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
+
+[supervisorctl]
+serverurl=unix:///tmp/supervisor.sock
+
+[program:zookeeper]
+directory=/opt/zookeeper
+user=root
+group=root
+command=/bin/bash -c '/opt/zookeeper/bin/zkServer.sh start-foreground'
+autostart=true
+autorestart=true
+logfile_maxbytes=10MB
+stdout_logfile_backups = 0
+stderr_logfile_backups = 0
+stderr_logfile = /var/log/supervisor/zookeeper_stderr.log
+stdout_logfile = /var/log/supervisor/zookeeper_stdout.log
diff --git a/roles/build/templates/cassandra/Dockerfile.j2 b/roles/build/templates/cassandra/Dockerfile.j2
index 94b0ca08c01de7c4b225bdcb81c7a35c2ffb33ff..052cbd188b5195405dd147753a785c6de2287762 100644
--- a/roles/build/templates/cassandra/Dockerfile.j2
+++ b/roles/build/templates/cassandra/Dockerfile.j2
@@ -29,7 +29,8 @@ RUN echo "[cassandra]" > /etc/yum.repos.d/cassandra.repo && \
     sed -i -e 's,/etc/cassandra,/usr/share/cassandra,g' /usr/share/cassandra/cassandra.in.sh && \
     chmod a+x /start.sh && \
     yum -y clean all
+COPY cassandrasupervisord.conf /etc/supervisord.conf
 EXPOSE 7000 9042
-#ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
-USER cassandra
+ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
+#USER cassandra
 # ENTRYPOINT ["/start.sh"]
diff --git a/roles/build/templates/zookeeper/Dockerfile.j2 b/roles/build/templates/zookeeper/Dockerfile.j2
index 209069c8137b1ee53bac1fbecda2efc9f388e9e2..1ac8a58f59b5e0e95ee9a2f85d166be84fa2c6e2 100644
--- a/roles/build/templates/zookeeper/Dockerfile.j2
+++ b/roles/build/templates/zookeeper/Dockerfile.j2
@@ -29,6 +29,8 @@ EXPOSE 2181 2888 3888
 
 WORKDIR ${ZOOKEEPER_BASE_DIR}/zookeeper
 
-ENTRYPOINT ["/opt/zookeeper/bin/zkServer.sh"]
-CMD ["start-foreground"]
-
+#ENTRYPOINT ["/opt/zookeeper/bin/zkServer.sh"]
+#CMD ["start-foreground"]
+RUN yum install supervisor -y
+COPY zookeepersupervisord.conf /etc/supervisord.conf
+ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
diff --git a/roles/cassandra/tasks/main.yml b/roles/cassandra/tasks/main.yml
index 7912910a2ebcd07a79d6649b7529fae5bde3a0cf..b5dfeb4677a946f5637309ffc143f259685b7e3d 100644
--- a/roles/cassandra/tasks/main.yml
+++ b/roles/cassandra/tasks/main.yml
@@ -1,6 +1,7 @@
 ---
 
 - name: Configure Cassandra
+  remote_user: cassandra
   template:
     src: cassandra.yaml.j2
     dest: /usr/share/cassandra/conf/cassandra.yaml
@@ -8,11 +9,13 @@
     - start
 
 - name: Start Cassandra
-  command: "/start.sh"
+  remote_user: root
+  command: "supervisorctl start cassandra"
   tags:
     - start
 
 - name: Wait for Cassandra
+  remote_user: root
   wait_for:
     host: "{{groups['cassandra'][0]}}"
     port: 9042
@@ -22,7 +25,8 @@
     - start
 
 - name: Stop Cassandra
-  command: "pkill -SIGTERM -F /var/run/cassandra/cassandra.pid"
+  remote_user: root
+  command: "supervisorctl stop cassandra"
   tags:
     - stop
 
diff --git a/roles/docker/tasks/cassandra.yml b/roles/docker/tasks/cassandra.yml
index a26bd28c104bc70cc17916496a1da8b68d978cd9..b913425d7171f5bb30f9b5a2434b521a09879ae6 100644
--- a/roles/docker/tasks/cassandra.yml
+++ b/roles/docker/tasks/cassandra.yml
@@ -10,7 +10,6 @@
     networks_cli_compatible: yes
     volumes:
       - "{{cassandra_name}}:/var/lib/cassandra"
-    entrypoint: "/bin/bash"
     interactive: "yes"
   with_items: "{{ groups['cassandra'] }}"
   tags: