You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flagon.apache.org by jk...@apache.org on 2024/05/14 23:16:40 UTC

(flagon) 01/01: Change docker example to deviantony

This is an automated email from the ASF dual-hosted git repository.

jky pushed a commit to branch docker
in repository https://gitbox.apache.org/repos/asf/flagon.git

commit c140c61e4fd1a7dcd68c0b6fceee98ddb73555f8
Author: Jason Young <ja...@protonmail.com>
AuthorDate: Tue May 14 19:16:24 2024 -0400

    Change docker example to deviantony
---
 docker/.env                                        |  42 ++
 docker/README.md                                   | 244 +-----------
 docker/_WIP_builds/README.md                       | 321 ----------------
 docker/_WIP_builds/docker-compose.cluster.yml      | 182 ---------
 docker/beats/metricbeat/metricbeat.yml             |  24 --
 docker/beats/metricbeat/modules.d/docker.yml       |   6 -
 .../beats/metricbeat/modules.d/elasticsearch.yml   |   6 -
 docker/beats/metricbeat/modules.d/kafka.yml        |   9 -
 docker/beats/metricbeat/modules.d/kibana.yml       |   6 -
 docker/beats/metricbeat/modules.d/kubernetes.yml   |  30 --
 docker/beats/metricbeat/modules.d/logstash.yml     |   6 -
 docker/beats/metricbeat/modules.d/postgresql.yml   |  17 -
 docker/beats/metricbeat/modules.d/system.yml       |  24 --
 docker/beats/metricbeat/modules.d/zookeeper.yml    |   6 -
 docker/db/Dockerfile                               |  21 -
 docker/db/sql.sh                                   |  32 --
 docker/distill/Dockerfile                          |  35 --
 docker/docker-compose-5.6.3.yml                    | 114 ------
 docker/docker-compose-6.2.2.yml                    | 163 --------
 docker/docker-compose-6.5.4.yml                    | 163 --------
 docker/docker-compose-6.6.2.yml                    | 163 --------
 docker/docker-compose-8.11.3.yml                   | 157 --------
 docker/docker-compose.yml                          | 194 +++++-----
 docker/docs/images/DockerBeats_Dashboard.png       | Bin 132578 -> 0 bytes
 docker/docs/images/configure_index.png             | Bin 116678 -> 0 bytes
 docker/docs/images/confirmation.png                | Bin 158876 -> 0 bytes
 docker/docs/images/dashboard.png                   | Bin 114906 -> 0 bytes
 docker/docs/images/kibana_Discover.png             | Bin 266169 -> 0 bytes
 docker/docs/images/management.png                  | Bin 60954 -> 0 bytes
 docker/docs/images/viz_import.png                  | Bin 183110 -> 0 bytes
 docker/elasticsearch/.dockerignore                 |   6 +
 docker/elasticsearch/.env                          |   8 -
 docker/elasticsearch/5.6.3/Dockerfile              |  29 --
 .../elasticsearch/5.6.3/config/elasticsearch.yml   |  54 ---
 .../elasticsearch/5.6.3/config/log4j2.properties   |  24 --
 docker/elasticsearch/6.2.2/Dockerfile              |  30 --
 .../elasticsearch/6.2.2/config/elasticsearch.yml   |  51 ---
 .../elasticsearch/6.2.2/config/log4j2.properties   |  24 --
 docker/elasticsearch/6.5.4/Dockerfile              |  30 --
 .../elasticsearch/6.5.4/config/elasticsearch.yml   |  51 ---
 .../elasticsearch/6.5.4/config/log4j2.properties   |  24 --
 docker/elasticsearch/6.6.2/Dockerfile              |  30 --
 .../elasticsearch/6.6.2/config/elasticsearch.yml   |  51 ---
 .../elasticsearch/6.6.2/config/log4j2.properties   |  24 --
 docker/elasticsearch/6.8.2/Dockerfile              |  30 --
 .../elasticsearch/6.8.2/config/elasticsearch.yml   |  51 ---
 .../elasticsearch/6.8.2/config/log4j2.properties   |  24 --
 docker/elasticsearch/8.11.3/Dockerfile             |  24 --
 .../elasticsearch/8.11.3/config/elasticsearch.yml  |  70 ----
 .../elasticsearch/8.11.3/config/log4j2.properties  |  24 --
 docker/elasticsearch/Dockerfile                    |   7 +
 docker/elasticsearch/config/elasticsearch.yml      |  12 +
 docker/kibana/.dockerignore                        |   6 +
 docker/kibana/5.6.3/Dockerfile                     |  26 --
 .../Apache SensSoft Page Usage Dashboard.json      |  18 -
 .../Apache SensSoft User Access Dashboard.json     |  18 -
 .../Apache SensSoft Visualizations.json            | 226 -----------
 .../5.6.3/Saved Objects/Drill-Down Search.json     |  22 --
 docker/kibana/5.6.3/config/kibana.yml              |  25 --
 docker/kibana/6.2.2/Dockerfile                     |  20 -
 .../Apache SensSoft Page Usage Dashboard.json      |  18 -
 .../Apache SensSoft User Access Dashboard.json     |  18 -
 .../Apache SensSoft Visualizations.json            | 226 -----------
 .../6.2.2/Saved Objects/Drill-Down Search.json     |  22 --
 docker/kibana/6.2.2/config/kibana.yml              |  18 -
 docker/kibana/6.5.4/Dockerfile                     |  20 -
 ...ache SensSoft Business Analytics Dashboard.json |  18 -
 .../Apache SensSoft Page Usage Dashboard.json      |  18 -
 .../Apache SensSoft User Access Dashboard.json     |  18 -
 .../Apache SensSoft Visualizations.json            | 359 -----------------
 .../6.5.4/Saved Objects/Drill-Down Search.json     |  22 --
 docker/kibana/6.5.4/config/kibana.yml              |  18 -
 docker/kibana/6.6.2/Dockerfile                     |  20 -
 ...Apache Flagon Business Analytics Dashboard.json |  18 -
 .../Apache Flagon Page Usage Dashboard.json        |  18 -
 .../Apache Flagon User Access Dashboard.json       |  18 -
 .../Apache Flagon Visualizations.json              | 427 ---------------------
 .../6.6.2/Saved Objects/Drill-Down Search.json     |  22 --
 docker/kibana/6.6.2/config/kibana.yml              |  18 -
 docker/kibana/6.8.2/Dockerfile                     |  20 -
 ...Apache Flagon Business Analytics Dashboard.json |  18 -
 .../Apache Flagon Page Usage Dashboard.json        |  18 -
 .../Apache Flagon User Access Dashboard.json       |  18 -
 .../Apache Flagon Visualizations.json              | 427 ---------------------
 .../6.8.2/Saved Objects/Drill-Down Search.json     |  22 --
 docker/kibana/6.8.2/config/kibana.yml              |  18 -
 docker/kibana/8.11.3/Dockerfile                    |  20 -
 ...ache Flagon Business Analytics Dashboard.ndjson |  18 -
 .../Apache Flagon Page Usage Dashboard.ndjson      |  18 -
 .../Apache Flagon User Access Dashboard.ndjson     |  18 -
 .../Apache Flagon Visualizations.ndjson            | 427 ---------------------
 .../8.11.3/Saved Objects/Drill-Down Search.ndjson  |  22 --
 docker/kibana/8.11.3/config/kibana.yml             |  18 -
 docker/kibana/Dockerfile                           |   7 +
 docker/kibana/config/kibana.yml                    |  99 +++++
 docker/logstash/.dockerignore                      |   6 +
 docker/logstash/5.6.3/Dockerfile                   |  31 --
 docker/logstash/5.6.3/config/logstash-userale.conf |  53 ---
 docker/logstash/5.6.3/templates/userale.json       | 150 --------
 docker/logstash/6.2.2/Dockerfile                   |  31 --
 .../logstash/6.2.2/pipeline/logstash-userale.conf  |  52 ---
 docker/logstash/6.2.2/templates/userale.json       | 143 -------
 docker/logstash/6.5.4/Dockerfile                   |  31 --
 .../logstash/6.5.4/pipeline/logstash-userale.conf  |  52 ---
 docker/logstash/6.5.4/templates/userale.json       | 143 -------
 docker/logstash/6.6.2/Dockerfile                   |  31 --
 .../logstash/6.6.2/pipeline/logstash-userale.conf  |  52 ---
 docker/logstash/6.6.2/templates/userale.json       | 153 --------
 docker/logstash/6.8.2/Dockerfile                   |  31 --
 docker/logstash/6.8.2/templates/userale.json       | 153 --------
 docker/logstash/8.11.3/Dockerfile                  |  31 --
 .../logstash/8.11.3/pipeline/logstash-userale.conf |  52 ---
 docker/logstash/Dockerfile                         |   7 +
 docker/logstash/config/logstash.yml                |   7 +
 .../logstash.conf}                                 |   8 +-
 .../logstash/{8.11.3 => }/templates/userale.json   |   0
 docker/setup/.dockerignore                         |   9 +
 docker/setup/Dockerfile                            |   6 +
 docker/setup/entrypoint.sh                         | 119 ++++++
 docker/setup/lib.sh                                | 240 ++++++++++++
 docker/setup/roles/filebeat_writer.json            |  20 +
 docker/setup/roles/heartbeat_writer.json           |  18 +
 docker/setup/roles/logstash_writer.json            |  34 ++
 docker/setup/roles/metricbeat_writer.json          |  19 +
 docker/site/Dockerfile                             |   9 +-
 docker/startup/Dockerfile                          |  31 --
 docker/startup/entrypoint.sh                       |  20 -
 docker/tap/Dockerfile                              |  67 ----
 docker/tap/README.md                               |   2 -
 docker/tap/neon_counts.js                          |   2 -
 docker/tap/neon_graph.js                           |   2 -
 docker/tap/wait-for-postgres.sh                    |  27 --
 132 files changed, 776 insertions(+), 6574 deletions(-)

diff --git a/docker/.env b/docker/.env
new file mode 100644
index 0000000..f5db319
--- /dev/null
+++ b/docker/.env
@@ -0,0 +1,42 @@
+ELASTIC_VERSION=8.13.3
+
+## Passwords for stack users
+#
+
+# User 'elastic' (built-in)
+#
+# Superuser role, full access to cluster management and data indices.
+# https://www.elastic.co/guide/en/elasticsearch/reference/current/built-in-users.html
+ELASTIC_PASSWORD='changeme'
+
+# User 'logstash_internal' (custom)
+#
+# The user Logstash uses to connect and send data to Elasticsearch.
+# https://www.elastic.co/guide/en/logstash/current/ls-security.html
+LOGSTASH_INTERNAL_PASSWORD='changeme'
+
+# User 'kibana_system' (built-in)
+#
+# The user Kibana uses to connect and communicate with Elasticsearch.
+# https://www.elastic.co/guide/en/elasticsearch/reference/current/built-in-users.html
+KIBANA_SYSTEM_PASSWORD='changeme'
+
+# Users 'metricbeat_internal', 'filebeat_internal' and 'heartbeat_internal' (custom)
+#
+# The users Beats use to connect and send data to Elasticsearch.
+# https://www.elastic.co/guide/en/beats/metricbeat/current/feature-roles.html
+METRICBEAT_INTERNAL_PASSWORD=''
+FILEBEAT_INTERNAL_PASSWORD=''
+HEARTBEAT_INTERNAL_PASSWORD=''
+
+# User 'monitoring_internal' (custom)
+#
+# The user Metricbeat uses to collect monitoring data from stack components.
+# https://www.elastic.co/guide/en/elasticsearch/reference/current/how-monitoring-works.html
+MONITORING_INTERNAL_PASSWORD=''
+
+# User 'beats_system' (built-in)
+#
+# The user the Beats use when storing monitoring information in Elasticsearch.
+# https://www.elastic.co/guide/en/elasticsearch/reference/current/built-in-users.html
+BEATS_SYSTEM_PASSWORD=''
diff --git a/docker/README.md b/docker/README.md
index 6500175..5f27b0c 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -1,243 +1,9 @@
-Building Apache Flagon Docker Containers
-===================================
-*Last Tested: 04 MAR 2021 using Docker Engine v20.10.2, Compose v1.27.4, Machine v0.16.1*
+# Example Docker deployment
 
-## This single-node deployment is meant for demonstrations and very limited data collections with [Apache Flagon UserALE.js](https://github.com/apache/incubator-flagon-useralejs).
+This directory contains a modified [elk stack](https://github.com/deviantony/docker-elk) along with an instrumented site
+to demonstrate how to publish logs to elk.
 
-Configurations in this repository can be used in complimentary version of appropriately scaled Elastic clusters. 
-Other [projects](https://github.com/deviantony/docker-elk) or service providers (e.g., AWS) provide excellent guidance for deploying production clusters.
+Prerequisites: Docker engine is running
 
-Prerequisites
--------------
+Run `docker-compose up setup` to initlize and `docker-compose up` to run.
 
-1. ``Docker`` can be found [here](http://docker.com). 
-   Alternatively, you can build this deployment in [Docker Desktop](https://www.docker.com/products/docker-desktop) on either OSX or Windows OS.
-
-1. ``docker-compose`` can be found [here](https://docs.docker.com/compose/install/). Requires Docker Compose 1.23 and above.
-   If you install Docker through [Docker Desktop](https://www.docker.com/products/docker-desktop), docker-compose is included.
-   
-1. ``docker-machine`` can be found [here](https://github.com/docker/machine/releases/). 
-   Note that ``docker-machine`` was removed from [Docker Desktop](https://www.docker.com/products/docker-desktop) in ver 2.1.4. If you are running later versions you will need to install [Docker/Machine](https://github.com/docker/machine/releases/) manually.
-   Alternatively, you can use ``virtualbox`` or other methods of provisioning vms to run docker containers in. The instructions assume you are running ``docker-machine``. 
-   
-Single Node Example Container
------------------------------
-
-The single-node deployment steps below will build a single-node logging server on a single
-machine. This is suitable for demonstrations and very limited data collections.
-
-1. Create docker-machine instance. 
-   **Note**: If using Docker Desktop bundle for OSX, there is a known bug in 
-   the bundled version of virtualbox that will prevent a successful docker-machine creation.
-   Before installation, check that virtualbox version is at least 5.2. [``Reinstall virtualbox``](https://www.virtualbox.org/wiki/Downloads), if needed.
-   **Note**: If using Docker Desktop bundle for Windows 10, you will need to use ``Hyper-V`` instead of virtual box. Refer to [Docker's guide](https://docs.docker.com/machine/drivers/hyper-v/) on creating vms with Hyper-V.
-   ```bash
-   $ docker-machine create --virtualbox-memory 3072 --virtualbox-cpu-count 2 flagon
-   # Windows 10 users will need to use Hyper-V: 
-   > docker-machine create -d hyperv --hyperv-virtual-switch "Primary Virtual Switch" --hyperv-memory 3072 --hyperv-cpu-count 2 flagon
-   ```
-    
-1. Before launching the Docker containers, ensure your ``vm_max_map_count``
-   kernel setting is set to at least 262144.
-   Visit [``Running Elasticsearch in Production mode``](https://www.elastic.co/guide/en/elasticsearch/reference/5.5/docker.html#docker-cli-run-prod-mode) for OS specific instructions.
-
-   ```bash
-   # Example for Linux systems
-   $ docker-machine ssh flagon sudo sysctl -w vm.max_map_count=262144
-   ```
-
-1. Create externel docker network to enable system monitoring. Only enable if running 
-   Elasticsearch >6.5.4 configuration (single and cluster mode)
-   
-   ```bash
-   $ docker network create esnet
-   ```
-
-1. Start Elasticsearch 6.6.2 or 6.8.2 (Recommended) Give Elasticsearch about 1-2 minutes to start before confirming its state.
-   
-   ```bash
-   #start Elasticsearch v6.6.2 (Deprecated)
-   $ docker-compose -f docker-compose-6.6.2.yml up -d elasticsearch
-   
-   or
-   
-   #start Elasticsearch v6.8.2 (Recommended)
-   $ docker-compose up -d elasticsearch
-   ```
-
-1. Confirm state:
-   ```bash
-   # if Flagon vm is remote
-   $ docker-machine ssh flagon curl -XGET http://localhost:9200/_cluster/health?pretty
-   # if Flagon virtual machine is running on your local machine, no need for ssh, instead:
-   $ curl -XGET http://localhost:9200/_cluster/health?pretty
-   #output should look like this:
-      "cluster_name" : "Flagon",
-      "status" : "green",
-      "timed_out" : false,
-      "number_of_nodes" : 1,
-      "number_of_data_nodes" : 1,
-      "active_primary_shards" : 0,
-      "active_shards" : 0,
-      "relocating_shards" : 0,
-      "initializing_shards" : 0,
-      "unassigned_shards" : 0,
-      "delayed_unassigned_shards" : 0,
-      "number_of_pending_tasks" : 0,
-      "number_of_in_flight_fetch" : 0,
-      "task_max_waiting_in_queue_millis" : 0,
-      "active_shards_percent_as_number" : 100.0
-   ```
- 
-1. Launch logging server. Give Logstash about 2 minutes to start before confirming 
-   its state.
-  
-   ```bash
-   $ docker-compose up -d logstash
-   # if Flagon vm is remote
-   $ docker-machine ssh flagon curl -XGET http://localhost:8100
-   # if Flagon virtual machine is running on your local machine, no need for ssh, instead:
-   $ curl -XGET http://localhost:8100
-   #ouput should look like this:
-      ok
-   ```
-   
-1. Before Kibana can be used, we will need to generate some data. We provide an example instrumented website to assist. 
-   
-   ```bash
-   $ docker-compose up -d site
-   # for remote users, forwards port to localhost
-   $ ssh docker@$(docker-machine ip flagon) -L 8080:localhost:8080
-   ```
-   
-   Visit `http://localhost:8080` and you will see Apache Flagon's home page.
-   
-   Note that the `userale` index uses dynamic mapping configurations for many fields. This means that if no valid data exists for 
-   certain fields in the logs you collect at this step, Kibana won't know to map these fields to data types (e.g., string, text, 
-   boolean, etc.). This can prevent certain dashboards and visualizations from appropriately displaying log aggregations. It is worth 
-   1-2 mins collecting some UserALE.js data in whichever way best emulates your use-case: from the same website, the [``UserALE.js example utilty``](https://github.com/apache/incubator-flagon-useralejs/tree/FLAGON-192/example), or the [``UserALE.js Web Extension``](https://github.com/apache/incubator-flagon-useralejs/tree/FLAGON-192/src/UserALEWebExtension). If you run into issues with data fields or visualizations, see the `Having Issues?` section below.
-
-1. Launch Kibana. Give Kibana about 2-5 minutes to start before accessing
-   `http://localhost:5601`. 
-   
-   ```bash
-   $ docker-compose up -d kibana
-   # for remote users, forwards port to localhost
-   $ ssh docker@$(docker-machine ip flagon) -L 5601:localhost:5601
-   ```
-
-1. Register an index in Kibana to see the logs:
-
-   Goto: Management -> Index Patterns and enter `userale` in the Index pattern box.
-   Choose `clientTime` in the drop down `Time Filter field name` field. Alternatively, to explore our "interval" logs, select `@timestamp`.
-  
-   ![alt text][configure_index]
-   
-1. Load example Dashboard and Visualizations under docker/kibana/.
-
-   Goto: Management -> Saved Objects and select the `Import` button. Import the
-   `Apache Flagon Visualizations.json`, `Drill-Down Search.json`, `Apache Flagon Page Usage Dashboard.json`, and `Apache Flagon User Access Dashboard.json` files from the "Saved Objects" folder in the kibana directory.
-
-   ![alt text][management]
-
-   Set `userale` index if Kibana detects conflicts when you load visualizations and searches. 
-   
-   ![alt text][viz_import]
-   
-   Once that is complete, navigate to the `Dashboard` view in Kibana and click the
-   `Apache Flagon Page Usage Dashboard` object. 
-
-   ![alt text][dashboard]
-   
-1. To see container performance metrics, launch Metricbeat:
-
-   ```bash
-   $ docker-compose up -d metricbeat
-   ```
-   
-   Once the container is running, metricbeat dashboards will automatically load in Kibana. Navigate to the `Container Dashboard`.
-   
-   ![alt text][metrics]
-   
-   Note that metricbeat and logging with UserALE.js will strain the single-node container. We recommend that metricbeat be started only for demonstration purposes.
-   
-1. To stop all containers.
-    ```bash
-    $ docker-compose stop
-    ```
-    
- 1. To kill the Flagon machine.
-    ```bash
-    $ docker-machine stop flagon
-    ```
-    
- 1. To remove the Flagon machine.
-    ```bash
-    $ docker-machine rm flagon
-    ```
-    
-If running on a single machine, on reboot or restart your Flagon machine is available, but 
-in a "stopped" state. You'll need to restart the machine, then you'll need to use docker-
-compose up commands above to restart containers.
-
- 1. Restart the Flagon machine.
-    ```bash
-    $ docker-machine start flagon
-    $ docker-machine ls #confirm state
-    #output should look like this:
-    NAME     ACTIVE   DRIVER       STATE     URL                       SWARM   DOCKER     ERRORS
-    flagon   -      virtualbox   Running   tcp://192. ...                    v19.03.1   
-    ```
-
-Having Issues?
---------------
-1. Check out the docker-compose logs for the service(s) that are having issues.
-
-   ```bash
-   $ docker-compose ps 
-   ```
-
-1. If you find containers failing, you may have duplicate or dangling images! 
-   
-   This can happen if you've played around with multiple machines and builds of the containers 
-   on the same machine. Visit [``this excellent how to guide for removing images, containers, 
-   and volumes``](https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes). Remove any duplicate images and rebuild the containers.
-   
-1. If you find that the `logstash` or `site` containers don't respond immediately, give them a few minutes. 
-   In the case of the `site` container, you might try giving it a kick if its taking more than three minutes to load in browser"
-
-   ```bash
-   #after loading container, confirming status is "up", and localhost:8080 still isn't loading, bring the container down
-   $ docker-compose kill site
-   
-   # then bring it back up, and see if it loads
-   $ docker-compose up -d site
-   ```
-   
-1. If you find that Apache Flagon Kibana Dashboards aren't loading, or Apache UserALE.js log fields in Kibana's `Discover` view
-   appear with a warning icon, it could be that you didn't collect logs with valid data for those fields prior to loading the userale 
-   index in Kibana. Don't worry, your data is fine--just navigate to the Management -> Index Patterns page, and click the "refresh" button in the upper right hand of the page (Disregard the "popularity metrics" warning). This will refresh the index, making those 
-   fields aggregatable, and Dashboards should render properly.
-
-1. Make sure to send us the docker-compose logs to help diagnose your issues please!
-
-   ```bash
-   $ docker-compose logs > err.dump 
-   ```
-   
-    You can attach logs directly to tickets on our [``Apache Jira board``](https://issues.apache.org/jira/issues/?jql=project+%3D+FLAGON+AND+component+%3D+builds)
-   
-1. Still having issues? Reach out to us at at [our dev list](mailto:dev@flagon.incubator.apache.org).
-
-[configure_index]: ./docs/images/configure_index.png "Configure Kibana index"
-[confirmation]: ./docs/images/confirmation.png "Confirm index pattern conflicts"
-[dashboard]: ./docs/images/dashboard.png "Apache Flagon Page Usage Dashboard"
-[management]: ./docs/images/management.png "Kibana management console"
-[metrics]: ./docs/images/DockerBeats_Dashboard.png "Metricbeat Dashboard"
-[viz_import]: ./docs/images/viz_import.png "Visualization Import Configuration"
-
-Licensing
---------------
-
-Apache Flagon is provided under Apache License version 2.0. See LICENSE and NOTICE (at Master) file for more 
-details.
diff --git a/docker/_WIP_builds/README.md b/docker/_WIP_builds/README.md
deleted file mode 100755
index 94588aa..0000000
--- a/docker/_WIP_builds/README.md
+++ /dev/null
@@ -1,321 +0,0 @@
-Building SensSoft Docker Containers
-=======================================
-*Last Tested (on macOS Mojave) 23 JAN 2019*
-
-Prerequisites
--------------
-
-1. Install [``Docker``](http://docker.com) on your machine. Requires Docker 1.7 and above.
-
-1. Install docker-compose. Full instructions can be found [``here``](https://docs.docker.com/compose/install/). 
-   If you install Docker through the [``Desktop bundle``](https://www.docker.com/products/docker-desktop), docker-compose is included.
-   
-Single Node Deployment
-----------------------
-
-The single node deployment steps below will build a single-node logging server on a single
-machine. This is suitable for demonstrations and very limited data collections. Please 
-refer to our [``Kubernetes``](https://github.com/apache/incubator-senssoft/tree/master/kubernetes) guide for deployments that scale to your needs. In some cases, 
-you may be able to use single node containers within scaling services (e.g., AWS EBS), but this 
-requires special configuration. Please reach out to us at [our dev list](mailto:dev@senssoft.incubator.apache.org) for recommendations.
-
-1. Create docker-machine instance. 
-   **Note**: If using Docker Desktop bundle, there is a known bug in 
-   the bundled version of virtualbox that will prevent a successful docker-machine creation.
-   Before installation, check that virtualbox version is at least 5.2. [``Reinstall virtualbox``](https://www.virtualbox.org/wiki/Downloads), if needed.
-   
-   ```bash
-   $ docker-machine create --virtualbox-memory 3072 --virtualbox-cpu-count 2 senssoft
-   ```
-    
-1. Before launching the Docker containers, ensure your ``vm_max_map_count``
-   kernel setting is set to at least 262144.
-   Visit [``Running Elasticsearch in Production mode``](https://www.elastic.co/guide/en/elasticsearch/reference/5.5/docker.html#docker-cli-run-prod-mode) for OS specific instructions.
-
-   ```bash
-   # Example for Linux systems
-   $ docker-machine ssh senssoft sudo sysctl -w vm.max_map_count=262144
-   ```
-
-1. Create externel docker network to enable system monitoring. Only enable if running 
-   the Elasticsearch 6.5.4 configuration (single and cluster mode)
-   
-   ```bash
-   $ docker network create esnet
-   ```
-
-1. Start Elasticsearch 6.2.2 (Deprecated) or 6.5.4 (Recommended) Give Elasticsearch about 1-2 minutes to start before confirming its state.
-   
-   ```bash
-   #start Elasticsearch v6.2.2 (Deprecated)
-   $ docker-compose -f docker-compose.single-6.2.2.yml up -d elasticsearch
-   
-   or
-   
-   #start Elasticsearch v6.5.4 (Recommended)
-   $ docker-compose up -d elasticsearch
-   ```
-
-1. Confirm state:
-   ```bash
-   # if senssoft vm is remote
-   $ docker-machine ssh senssoft curl -XGET http://localhost:9200/_cluster/health?pretty
-   # if senssoft virtual machine is running on your local machine, no need for ssh, instead:
-   $ curl -XGET http://localhost:9200/_cluster/health?pretty
-   #output should look like this:
-      "cluster_name" : "SensSoft",
-      "status" : "yellow",
-      "timed_out" : false,
-      "number_of_nodes" : 1,
-      "number_of_data_nodes" : 1,
-      "active_primary_shards" : 0,
-      "active_shards" : 0,
-      "relocating_shards" : 0,
-      "initializing_shards" : 0,
-      "unassigned_shards" : 0,
-      "delayed_unassigned_shards" : 0,
-      "number_of_pending_tasks" : 0,
-      "number_of_in_flight_fetch" : 0,
-      "task_max_waiting_in_queue_millis" : 0,
-      "active_shards_percent_as_number" : 100.0
-   ```
- 
-1. Launch logging server. Give Logstash about 2 minutes to start before confirming 
-   its state.
-  
-   ```bash
-   $ docker-compose up -d logstash
-   # if senssoft vm is remote
-   $ docker-machine ssh senssoft curl -XGET http://localhost:8100
-   # if senssoft virtual machine is running on your local machine, no need for ssh, instead:
-   $ curl -XGET http://localhost:8100
-   #ouput should look like this:
-      ok
-   ```
-   
-1. Before Kibana can be used, we will need to generate some data. We provide an example instrumented website to assist. 
-   
-   ```bash
-   $ docker-compose up -d site
-   # for remote users, forwards port to localhost
-   $ ssh docker@$(docker-machine ip senssoft) -L 8080:localhost:8080
-   ```
-   
-   Visit `http://localhost:8080` and you will see Apache SensSoft's home page.
-   
-   Note that the `userale` index uses dynamic mapping configurations for many fields. This means that if no valid data exists for 
-   certain fields in the logs you collect at this step, Kibana won't know to map these fields to data types (e.g., string, text, 
-   boolean, etc.). This can prevent certain dashboards and visualizations from appropriately displaying log aggregations. It is worth 
-   1-2 mins collecting some UserALE.js data in whichever way best emulates your use-case: from the same website, the [``UserALE.js example utilty``](https://github.com/apache/incubator-senssoft-useralejs/tree/SENSSOFT-192/example), or the [``UserALE.js Web Extension``](https://github.com/apache/incubator-senssoft-useralejs/tree/SENSSOFT-192/src/UserALEWebExtension). If you run into issues with data fields or visualizations, see the `Having Issues?` section below.
-
-1. Launch Kibana. Give Kibana about 2-5 minutes to start before accessing
-   `http://localhost:5601`. 
-   
-   ```bash
-   $ docker-compose up -d kibana
-   # for remote users, forwards port to localhost
-   $ ssh docker@$(docker-machine ip senssoft) -L 5601:localhost:5601
-   ```
-
-1. Register an index in Kibana to see the logs:
-
-   Goto: Management -> Index Patterns and enter `userale` in the Index pattern box.
-   Choose `clientTime` in the drop down `Time Filter field name` field.
-  
-   ![alt text][configure_index]
-   
-1. Load example Dashboard and Visualizations under docker/kibana/.
-
-   Goto: Management -> Saved Objects and select the `Import` button. Import the
-   `Apache SensSoft Visualizations.json`, `Drill-Down Search.json`, `Apache SensSoft Page Usage Dashboard.json`, and `Apache SensSoft User Access Dashboard.json` files from the "Saved Objects" folder in the kibana directory.
-
-   ![alt text][management]
-
-   Set `userale` index if Kibana detects conflicts when you load visualizations and searches. 
-   
-   ![alt text][viz_import]
-   
-   Once that is complete, navigate to the `Dashboard` view in Kibana and click the
-   `Apache SensSoft Page Usage Dashboard` object. 
-
-   ![alt text][dashboard]
-   
-1. To see container health metrics, launch Metricbeat:
-
-   ```bash
-   $ docker-compose up -d metricbeat
-   ```
-   
-   Once the container is running, metricbeat dashboards will automatically load in Kibana. Navigate to the `Container Dashboard`.
-   
-   ![alt text][metrics]
-   
-1. To stop all containers.
-    ```bash
-    $ docker-compose stop
-    ```
-    
- 1. To kill the senssoft machine.
-    ```bash
-    $ docker-machine rm senssoft
-    ```
-    
-If running on a single machine, on reboot or restart your senssoft machine is available, but 
-in a "stopped" state. You'll need to restart the machine, then you'll need to use docker-
-compose up commands above to restart containers.
-
- 1. Restart the senssoft machine.
-    ```bash
-    $ docker-machine start senssoft
-    $ docker-machine ls #confirm state
-    #output should look like this:
-    NAME     ACTIVE   DRIVER       STATE     URL                       SWARM   DOCKER     ERRORS
-    senssoft   -      virtualbox   Running   tcp://192.168.99.100:2376         v18.09.0   
-    ```
-
-Multi-Node Deployment on a Single Machine
------------------------------------------
-
-<aside class="warning">
-    Starting an elasticsearch cluster is not recommended on a single server. This
-    is just for demonstration purposes only. Please refer to our [Kubernetes] guide to
-    deploy an Elasticsearch cluster for an enterprise scale logging capability.
-    </aside>
-
-1. Create docker-machine instance
-   ```bash
-   docker-machine create --virtualbox-memory 2048 --virtualbox-cpu-count 2 senssoft
-   ```
-
-1. Before launching the Docker containers, ensure your ``vm_max_map_count``
-   kernel setting is set to at least 262144.
-   Visit [``Running Elasticsearch in Production mode``](https://www.elastic.co/guide/en/elasticsearch/reference/5.5/docker.html#docker-cli-run-prod-mode) for OS specific instructions.
-
-   ```bash
-   # Example for Linux systems
-   $ docker-machine ssh senssoft sudo sysctl -w vm.max_map_count=262144
-   ```
-
-1. Create externel docker network to enable system monitoring. Only enable if running 
-   the Elasticsearch 6.2.2 configuration (single and cluster mode)
-   
-   ```bash
-   $ docker network create esnet
-   ```
-
-1. Start Elasticsearch cluster:
-
-    ```bash
-    $ docker-compose -f docker-compose.cluster.yml up -d --scale elasticsearch=3 elasticsearch
-    $ docker-compose -f docker-compose.cluster.yml up -d loadbalancer
-    ```
-
-    The loadbalancer node exposes port 9200 on localhost and is the only node
-    that has HTTP enabled. Services such as Kibana and Logstash connect to the
-    loadbalancer node directly. Loadbalancer accepts requests from Kibana and Logstash
-    and balances them across the elasticsearch worker nodes. The elasticsearch
-    worker nodes communicate to each other and the loadbalancer via TCP on port 9300.
-
-1. Confirm cluster state:
-   ```bash
-   $ docker-machine ssh senssoft curl -XGET http://localhost:9200/_cluster/health\?pretty
-   # if senssoft virtual machine is running on your local machine, no need for ssh, instead:
-   $ curl -XGET http://localhost:9200/_cluster/health?pretty
-   #output should look like this:
-    {
-     "cluster_name" : "SensSoft",
-     "status" : "green",
-     "timed_out" : false,
-     "number_of_nodes" : 4,
-     "number_of_data_nodes" : 3,
-     "active_primary_shards" : 0,
-     "active_shards" : 0,
-     "relocating_shards" : 0,
-     "initializing_shards" : 0,
-     "unassigned_shards" : 0,
-     "delayed_unassigned_shards" : 0,
-     "number_of_pending_tasks" : 0,
-     "number_of_in_flight_fetch" : 0,
-     "task_max_waiting_in_queue_millis" : 0,
-     "active_shards_percent_as_number" : 100.0
-   }
-   ```
-   Confirm that the `number_of_nodes` is 4 and `number_of_data_nodes` is 3.
-
-1. Follow remaining instructions in [Single Node Deployment] starting at #6.
-   
-1. To stop all containers.
-    ```bash
-    $ docker-compose stop
-    ```
-    
- 1. To kill the "senssoft" machine.
-    ```bash
-    $ docker-machine rm senssoft
-    ```
-    
-If running on a single machine, on reboot or restart your senssoft machine is available, but 
-in a "stopped" state. You'll need to restart the machine, then you'll need to use docker-
-compose up commands above to restart containers.
-
- 1. Restart the senssoft machine.
-    ```bash
-    $ docker-machine start senssoft
-    $ docker-machine ls #confirm state
-    #output should look like this:
-    NAME     ACTIVE   DRIVER       STATE     URL                       SWARM   DOCKER     ERRORS
-    senssoft   -      virtualbox   Running   tcp://192.168.99.100:2376         v18.09.0   
-    ```
-
-Having Issues?
---------------
-1. Check out the docker-compose logs for the service(s) that are having issues.
-
-   ```bash
-   $ docker-compose ps 
-   ```
-
-1. If you find containers failing, you may have duplicate or dangling images! 
-   
-   This can happen if you've played around with multiple machines and builds of the containers 
-   on the same machine. Visit [``this excellent how to guide for removing images, containers, 
-   and volumes``](https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes). Remove any duplicate images and rebuild the containers.
-   
-1. If you find that the `logstash` or `site` containers don't respond immediately, give them a few minutes. 
-   In the case of the `site` container, you might try giving it a kick if its taking more than three minutes to load in browser"
-
-   ```bash
-   #after loading container, confirming status is "up", and localhost:8080 still isn't loading, bring the container down
-   $ docker-compose kill site
-   
-   # then bring it back up, and see if it loads
-   $ docker-compose up -d site
-   ```
-   
-1. If you find that Apache SensSoft Kibana Dashboards aren't loading, or Apache UserALE.js log fields in Kibana's `Discover` view
-   appear with a warning icon, it could be that you didn't collect logs with valid data for those fields prior to loading the userale 
-   index in Kibana. Don't worry, your data is fine--just navigate to the Management -> Index Patterns page, and click the "refresh" button in the upper right hand of the page (Disregard the "popularity metrics" warning). This will refresh the index, making those 
-   fields aggregatable, and Dashboards should render properly.
-
-1. Make sure to send us the docker-compose logs to help diagnose your issues please!
-
-   ```bash
-   $ docker-compose logs > err.dump 
-   ```
-   
-    You can attach logs directly to tickets on our [``Apache Jira board``](https://issues.apache.org/jira/issues/?jql=project+%3D+SENSSOFT+AND+component+%3D+builds)
-   
-1. Still having issues? Reach out to us at at [our dev list](mailto:dev@senssoft.incubator.apache.org).
-
-[configure_index]: ./docs/images/configure_index.png "Configure Kibana index"
-[confirmation]: ./docs/images/confirmation.png "Confirm index pattern conflicts"
-[dashboard]: ./docs/images/dashboard.png "Apache Senssoft Page Usage Dashboard"
-[management]: ./docs/images/management.png "Kibana management console"
-[metrics]: ./docs/images/DockerBeats_Dashboard.png "Metricbeat Dashboard"
-[viz_import]: ./docs/images/viz_import.png "Visualization Import Configuration"
-
-Licensing
---------------
-
-Apache SensSoft is provided under Apache License version 2.0. See LICENSE (at Master) file for more 
-details. "Software as a Sensor" is Copyright © 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved.
diff --git a/docker/_WIP_builds/docker-compose.cluster.yml b/docker/_WIP_builds/docker-compose.cluster.yml
deleted file mode 100644
index 96f6cc4..0000000
--- a/docker/_WIP_builds/docker-compose.cluster.yml
+++ /dev/null
@@ -1,182 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Apache SensSoft Cluster Build
-
-version: "3"
-services:
-
-  # Startup
-  startup:
-    build: ./startup
-    depends_on:
-      - "loadbalancer"
-    command: bash /opt/entrypoint.sh
-
-  # # Site
-  site:
-    build: ./site
-    ports:
-      - 8080:8080
-    depends_on:
-      - "logstash"
-    command: python -m SimpleHTTPServer 8080
-
-  # Elasticsearch Swarm Workers
-  elasticsearch:
-    build: ./elasticsearch/6.2.2
-    environment:
-      - NODE_MASTER=true
-      - NUMBER_OF_MASTERS=3
-      - NODE_COORDINATE=true
-      - "DISCOVERY_SERVICE=elasticsearch"
-      - NODE_DATA=true
-      - NODE_INGEST=true
-      - MAX_LOCAL_STORAGE_NODES=1
-      - NETWORK_HOST=0.0.0.0
-      - HTTP_ENABLE=false
-      - HTTP_CORS_ENABLE=false
-      - HTTP_CORS_ALLOW_ORIGIN=*
-      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
-    ulimits:
-      memlock:
-        soft: -1
-        hard: -1
-    healthcheck:
-      test: ["CMD", "curl","-s" ,"-f", "-u", "http://localhost:9200/_cluster/health"]
-    networks:
-      - esnet
-
-  # Elasticsearch Loadbalancer
-  loadbalancer:
-    build: ./elasticsearch/6.2.2
-    environment:
-      - NODE_MASTER=false
-      - NUMBER_OF_MASTERS=1
-      - NODE_COORDINATE=true
-      - "DISCOVERY_SERVICE=elasticsearch"
-      - NODE_DATA=false
-      - NODE_INGEST=false
-      - MAX_LOCAL_STORAGE_NODES=1
-      - NETWORK_HOST=0.0.0.0
-      - HTTP_ENABLE=true
-      - HTTP_CORS_ENABLE=true
-      - HTTP_CORS_ALLOW_ORIGIN=*
-      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
-    ulimits:
-      memlock:
-        soft: -1
-        hard: -1
-    healthcheck:
-      test: ["CMD", "curl","-s" ,"-f", "-u", "http://localhost:9200/_cluster/health"]
-    ports:
-      - "9200:9200"
-      - "9300"
-    networks:
-      - esnet
-
-  # Kibana
-  kibana:
-    build: ./kibana/6.2.2
-    environment:
-      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
-      - "ELASTICSEARCH_URL=http://loadbalancer:9200"
-    ports:
-      - "5601:5601"
-    depends_on:
-      - "loadbalancer"
-    networks:
-      - esnet
-
-  # Logstash
-  logstash:
-    build: ./logstash/6.2.2
-    environment:
-      - "ELASTICSEARCH_URL=loadbalancer:9200"
-    ports:
-      - 8100:8100
-    volumes:
-      - ./logstash/6.2.2/pipeline/logstash-userale.conf:/usr/share/logstash/pipeline/logstash-userale.conf
-      - ./logstash/6.2.2/templates/userale.json:/usr/share/logstash/templates/userale.json
-    depends_on:
-      - "loadbalancer"
-    networks:
-      - esnet
-
-  # Distill
-  distill:
-     build: ./distill
-     ports:
-       - 8090:8090
-     depends_on:
-       - "loadbalancer"
-     networks:
-       - esnet
-
-  # TAP's Database
-  db:
-     build: ./db
-     image: senssoft/postgres:latest
-     ports:
-       - "5432:5432"
-
-  # TAP
-  tap:
-     build: ./tap
-     command: bash -c "/usr/src/app/wait-for-postgres.sh"
-     ports:
-       - "8010:8010"
-     depends_on:
-       - db
-     links:
-       - db:db
-
-  # Specific container and configuration to monitor the HOST (filesystem, memory, processes,...)
-  metricbeat:
-    image: docker.elastic.co/beats/metricbeat:6.2.4
-    restart: unless-stopped
-    user: root
-    pid: host
-    volumes:
-      #The commented sections below enable Metricbeat to monitor the Docker host
-      #rather than the Metricbeat container. These are used by the system module.
-      - /proc:/hostfs/proc:ro
-      - /sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro
-      #We mount the host filesystem so we can report on disk usage with the system module
-      - /:/hostfs:ro
-      #Mount the metricbeat configuration so users can make edit
-      - ./beats/metricbeat/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml
-      #Mount the modules.d directory into the container. This allows user to 
-      #potentially make changes to the modules and they will be dynamically loaded.
-      - ./beats/metricbeat/modules.d/:/usr/share/metricbeat/modules.d/
-      #Allows us to report on docker from the hosts information
-      - /var/run/docker.sock:/var/run/docker.sock
-    depends_on:
-      - loadbalancer
-    environment:
-      - ELASTICSEARCH_URL=http://loadbalancer:9200
-      - KIBANA_URL=http://kibana:5601
-      - LOGSTASH_URL=http://logstash:9600
-    extra_hosts:
-      - "loadbalancer:172.17.0.1" # The IP of docker0 interface to access host from container
-      - "kibana:172.17.0.1" # The IP of docker0 interface to access host from container
-      - "logstash:172.17.0.1"
-    command: metricbeat -e -system.hostfs=/hostfs -strict.perms=false
-    network_mode: host # Mandatory to monitor HOST filesystem, memory, processes,...
-
-networks:
-  esnet:
-    external:
-      name: esnet
diff --git a/docker/beats/metricbeat/metricbeat.yml b/docker/beats/metricbeat/metricbeat.yml
deleted file mode 100644
index a987a43..0000000
--- a/docker/beats/metricbeat/metricbeat.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-metricbeat.config.modules:
-
-  # Glob pattern for configuration reloading
-  path: ${path.config}/modules.d/*.yml
-
-  # Period on which files under path should be checked for changes
-  reload.period: 30s
-
-  # Set to true to enable config reloading
-  reload.enabled: true
-
-# Maximum amount of time to randomly delay the start of a metricset. Use 0 to
-# disable startup delay.
-metricbeat.max_start_delay: 10s 
-
-output.elasticsearch:
-  hosts: ["${ELASTICSEARCH_URL}"]
-
-setup.dashboards.enabled: true
-
-setup.kibana:
-  host: "${KIBANA_URL}"
-
-logging.to_files: false
\ No newline at end of file
diff --git a/docker/beats/metricbeat/modules.d/docker.yml b/docker/beats/metricbeat/modules.d/docker.yml
deleted file mode 100644
index 87a18f0..0000000
--- a/docker/beats/metricbeat/modules.d/docker.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-#------------------------------- Docker Module -------------------------------
-- module: docker
-  metricsets: ["container", "cpu", "diskio", "healthcheck", "info", "memory", "network"]
-  hosts: ["unix:///var/run/docker.sock"]
-  enabled: true
-  period: 10s
diff --git a/docker/beats/metricbeat/modules.d/elasticsearch.yml b/docker/beats/metricbeat/modules.d/elasticsearch.yml
deleted file mode 100644
index 62f7dcb..0000000
--- a/docker/beats/metricbeat/modules.d/elasticsearch.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-#---------------------------- Elasticsearch Module ---------------------------
-- module: elasticsearch
-  metricsets: ["node", "node_stats"]
-  period: 10s
-  enabled: true
-  hosts: ["${ELASTICSEARCH_URL}"] 
\ No newline at end of file
diff --git a/docker/beats/metricbeat/modules.d/kafka.yml b/docker/beats/metricbeat/modules.d/kafka.yml
deleted file mode 100644
index b1954cc..0000000
--- a/docker/beats/metricbeat/modules.d/kafka.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-#---------------------------- Kafka Module ---------------------------
-- module: kafka
-  metricsets: ["consumergroup", "partition"]
-  period: 10s
-  hosts: ["${KAFKA_URL}"]
-  enabled: false
-
-  # List of Topics to query metadata for. If empty, all topics will be queried.
-  #topics: []
\ No newline at end of file
diff --git a/docker/beats/metricbeat/modules.d/kibana.yml b/docker/beats/metricbeat/modules.d/kibana.yml
deleted file mode 100644
index 0d83b05..0000000
--- a/docker/beats/metricbeat/modules.d/kibana.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-#------------------------------- Kibana Module -------------------------------
-- module: kibana
-  metricsets: ["status"]
-  period: 30s
-  enabled: true
-  hosts: ["${KIBANA_URL}"]
\ No newline at end of file
diff --git a/docker/beats/metricbeat/modules.d/kubernetes.yml b/docker/beats/metricbeat/modules.d/kubernetes.yml
deleted file mode 100644
index f58ea52..0000000
--- a/docker/beats/metricbeat/modules.d/kubernetes.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-#----------------------------- Kubernetes Module -----------------------------
-# Node metrics, from kubelet:
-- module: kubernetes
-  enabled: false
-  metricsets:
-    - node
-    - system
-    - pod
-    - container
-    - volume
-  period: 10s
-  hosts: ["localhost:10255"]
-
-# State metrics from kube-state-metrics service:
-- module: kubernetes
-  enabled: false
-  metricsets:
-    - state_node
-    - state_deployment
-    - state_replicaset
-    - state_pod
-    - state_container
-  period: 10s
-  hosts: ["kube-state-metrics:8080"]
-
-# Kubernetes events
-- module: kubernetes
-  enabled: false
-  metricsets:
-    - event
\ No newline at end of file
diff --git a/docker/beats/metricbeat/modules.d/logstash.yml b/docker/beats/metricbeat/modules.d/logstash.yml
deleted file mode 100644
index 55a67ff..0000000
--- a/docker/beats/metricbeat/modules.d/logstash.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-#------------------------------ Logstash Module ------------------------------
-- module: logstash
-  metricsets: ["node", "node_stats"]
-  enabled: true
-  period: 10s
-  hosts: ["${LOGSTASH_URL}"]
\ No newline at end of file
diff --git a/docker/beats/metricbeat/modules.d/postgresql.yml b/docker/beats/metricbeat/modules.d/postgresql.yml
deleted file mode 100644
index 363fe4b..0000000
--- a/docker/beats/metricbeat/modules.d/postgresql.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-#----------------------------- PostgreSQL Module -----------------------------
-- module: postgresql
-  metricsets: ["database", "activity"]
-  period: 10s
-  enabled: true
-
-  # The host must be passed as PostgreSQL URL. Example:
-  # postgres://localhost:5432?sslmode=disable
-  # The available parameters are documented here:
-  # https://godoc.org/github.com/lib/pq#hdr-Connection_String_Parameters
-  hosts: ["${POSTGRESQL_URL}"]
-
-  # Username to use when connecting to PostgreSQL. Empty by default.
-  username: "${POSTGRESQL_USERNAME}"
-
-  # Password to use when connecting to PostgreSQL. Empty by default.
-  password: "${POSTGRESQL_PASSWORD}"
\ No newline at end of file
diff --git a/docker/beats/metricbeat/modules.d/system.yml b/docker/beats/metricbeat/modules.d/system.yml
deleted file mode 100644
index f2d6bb2..0000000
--- a/docker/beats/metricbeat/modules.d/system.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-#------------------------------- System Module -------------------------------
-- module: system
-  metricsets:
-    - core
-    - cpu
-    - diskio
-    - filesystem
-    - fsstat
-    - load
-    - memory
-    - network
-    - process
-    - process_summary
-    - socket
-    - uptime
-  enabled: true
-  period: 10s
-  processes: ['.*']
-  process.include_top_n:
-    by_cpu: 5    # include top 5 processes by CPU
-    by_memory: 5 # incude top 5 processes by memory
-  core.metrics: [percentages, ticks]
-  cpu.metrics: [percentages, normalized_percentages, ticks]
-  process.cgroups.enabled: true
\ No newline at end of file
diff --git a/docker/beats/metricbeat/modules.d/zookeeper.yml b/docker/beats/metricbeat/modules.d/zookeeper.yml
deleted file mode 100644
index ca67993..0000000
--- a/docker/beats/metricbeat/modules.d/zookeeper.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-#---------------------------- ZooKeeper Module ---------------------------
-- module: zookeeper
-  enabled: false
-  metricsets: ["mntr"]
-  period: 10s
-  hosts: ["${ZOOKEEPER_URL}"]
\ No newline at end of file
diff --git a/docker/db/Dockerfile b/docker/db/Dockerfile
deleted file mode 100644
index bb6152f..0000000
--- a/docker/db/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM postgres:latest
-MAINTAINER Michelle Beard <ms...@apache.org>
-
-ADD sql.sh docker-entrypoint-initdb.d/sql.sh
-
-EXPOSE 5432
\ No newline at end of file
diff --git a/docker/db/sql.sh b/docker/db/sql.sh
deleted file mode 100644
index 4de31b5..0000000
--- a/docker/db/sql.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-
-#   http://www.apache.org/licenses/LICENSE-2.0
-
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#!/bin/bash
-
-echo "Creating POSTGRES DB FROM ENVIRONMENT"
-DB_NAME=tapdb
-DB_USER=tapuser
-DB_PASS="Dr@p3rUs3r"
-DB_SERVICE=postgres
-
-psql -U postgres -c "CREATE USER $DB_USER PASSWORD '$DB_PASS'"
-psql -U postgres -c "CREATE DATABASE $DB_NAME OWNER $DB_USER"
-psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER"
-
-#localedef -i de_DE -c -f UTF-8 -A /usr/share/locale/locale.alias de_DE.UTF-8
-##export LANG=en_US.UTF-8
-#locale   # confirm that it shows only en_US.UTF-8 for all settings
-# finally, run your opennms installer
-#/usr/share/opennms/bin/install -l /usr/local/lib -dis
diff --git a/docker/distill/Dockerfile b/docker/distill/Dockerfile
deleted file mode 100644
index 972edb3..0000000
--- a/docker/distill/Dockerfile
+++ /dev/null
@@ -1,35 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM python:2
-
-# install system wide deps
-RUN apt-get -yqq update
-
-# Set the work directory
-RUN mkdir -p /usr/src
-WORKDIR /usr/src
-
-# Clone Distill
-RUN git clone https://github.com/apache/incubator-senssoft-distill.git distill
-WORKDIR /usr/src/distill
-RUN git pull
-
-# Install Distill dependencies
-RUN pip install -r requirements.txt
-
-# Rest
-RUN python setup.py install
-CMD dev
diff --git a/docker/docker-compose-5.6.3.yml b/docker/docker-compose-5.6.3.yml
deleted file mode 100644
index 0198644..0000000
--- a/docker/docker-compose-5.6.3.yml
+++ /dev/null
@@ -1,114 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Apache SensSoft Single-Node Build
-
-version: "3"
-services:
-
-  # Startup
-  startup:
-    build: ./startup
-    depends_on:
-      - "loadbalancer"
-    command: bash /opt/entrypoint.sh
-
-  # Site
-  site:
-    build: ./site
-    ports:
-      - 8080:8080
-    depends_on:
-      - "logstash"
-    command: python -m SimpleHTTPServer 8080
-
-  # Elasticsearch
-  loadbalancer:
-    build: ./elasticsearch/5.6.3
-    environment:
-      - NODE_MASTER=true
-      - NUMBER_OF_MASTERS=1
-      - NODE_COORDINATE=true
-      - "DISCOVERY_SERVICE=0.0.0.0"
-      - NODE_DATA=true
-      - NODE_INGEST=true
-      - MAX_LOCAL_STORAGE_NODES=1
-      - NETWORK_HOST=0.0.0.0
-      - HTTP_ENABLE=true
-      - HTTP_CORS_ENABLE=true
-      - HTTP_CORS_ALLOW_ORIGIN=*
-      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-    ports:
-      - "9200:9200"
-    networks:
-      - esnet
-
-  # Kibana
-  kibana:
-    build: ./kibana/5.6.3
-    environment:
-      - "ES_JAVA_OPTS=-Xms2g -Xmx2g"
-      - "ELASTICSEARCH_URL=http://elasticsearch:9200"
-    ports:
-      - "5601:5601"
-    depends_on:
-      - "elasticsearch"
-    networks:
-      - esnet
-
-  # Logstash
-  logstash:
-    build: ./logstash/5.6.3
-    environment:
-      - "ELASTICSEARCH_URL=elasticsearch:9200"
-    ports:
-      - 8100:8100
-    depends_on:
-      - "elasticsearch"
-    networks:
-      - esnet
-
-  # Distill
-  distill:
-     build: ./distill
-     ports:
-       - 8090:8090
-     depends_on:
-       - "loadbalancer"
-     networks:
-       - esnet
-
-  # TAP's Database
-  db:
-     build: ./db
-     image: senssoft/postgres:latest
-     ports:
-       - "5432:5432"
-
-  # TAP
-  tap:
-     build: ./tap
-     command: bash -c "/usr/src/app/wait-for-postgres.sh"
-     ports:
-       - "8010:8010"
-     depends_on:
-       - db
-     links:
-       - db:db
-
-
-networks:
-  esnet:
-    driver: bridge
diff --git a/docker/docker-compose-6.2.2.yml b/docker/docker-compose-6.2.2.yml
deleted file mode 100644
index 316b7f5..0000000
--- a/docker/docker-compose-6.2.2.yml
+++ /dev/null
@@ -1,163 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Apache SensSoft Single-Node Build
-
-version: "3"
-services:
-
-  # Startup
-  startup:
-    build: ./startup
-    depends_on:
-      - "elasticsearch"
-    command: bash /opt/entrypoint.sh
-
-  # Site
-  site:
-    build: ./site
-    ports:
-      - 8080:8080
-    depends_on:
-      - "logstash"
-    command: python -m SimpleHTTPServer 8080
-
-  # Elasticsearch
-  elasticsearch:
-    build: ./elasticsearch/6.2.2
-    environment:
-      - NODE_MASTER=true
-      - NUMBER_OF_MASTERS=1
-      - NODE_COORDINATE=true
-      - "DISCOVERY_SERVICE=0.0.0.0"
-      - NODE_DATA=true
-      - NODE_INGEST=true
-      - MAX_LOCAL_STORAGE_NODES=1
-      - NETWORK_HOST=0.0.0.0
-      - HTTP_ENABLE=true
-      - HTTP_CORS_ENABLE=true
-      - HTTP_CORS_ALLOW_ORIGIN=*
-      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-    ulimits:
-      memlock:
-        soft: -1
-        hard: -1
-    healthcheck:
-      test: ["CMD", "curl","-s" ,"-f", "-u", "http://localhost:9200/_cluster/health"]
-    # Mount volumes to backup elasticsearch data
-#    volumes:
-#      - esdata:/usr/share/elasticsaerch/data
-    ports:
-      - "9200:9200"
-    networks:
-      - esnet
-
-  # Kibana
-  kibana:
-    build: ./kibana/6.2.2
-    environment:
-      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-      - "ELASTICSEARCH_URL=http://elasticsearch:9200"
-    ports:
-      - "5601:5601"
-    depends_on:
-      - "elasticsearch"
-    networks:
-      - esnet
-
-  # Logstash
-  logstash:
-    build: ./logstash/6.2.2
-    environment:
-      - "ELASTICSEARCH_URL=elasticsearch:9200"
-    ports:
-      - 8100:8100
-    volumes:
-      - ./logstash/6.2.2/pipeline/logstash-userale.conf:/usr/share/logstash/pipeline/logstash-userale.conf
-      - ./logstash/6.2.2/templates/userale.json:/usr/share/logstash/templates/userale.json
-    depends_on:
-      - "elasticsearch"
-    networks:
-      - esnet
-
-  # Distill
-  distill:
-     build: ./distill
-     ports:
-       - 8090:8090
-     depends_on:
-       - "elasticsearch"
-     networks:
-       - esnet
-
-  # TAP's Database
-  db:
-     build: ./db
-     image: senssoft/postgres:latest
-     ports:
-       - "5432:5432"
-
-  # TAP
-  tap:
-     build: ./tap
-     command: bash -c "/usr/src/app/wait-for-postgres.sh"
-     ports:
-       - "8010:8010"
-     depends_on:
-       - db
-     links:
-       - db:db
-
-  # Specific container and configuration to monitor the HOST (filesystem, memory, processes,...)
-  metricbeat:
-    image: docker.elastic.co/beats/metricbeat:6.2.4
-#    restart: unless-stopped
-    user: root
-    pid: host
-    volumes:
-      #The commented sections below enable Metricbeat to monitor the Docker host
-      #rather than the Metricbeat container. These are used by the system module.
-      - /proc:/hostfs/proc:ro
-      - /sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro
-      #We mount the host filesystem so we can report on disk usage with the system module
-      - /:/hostfs:ro
-      #Mount the metricbeat configuration so users can make edits
-      - ./beats/metricbeat/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml
-      #Mount the modules.d directory into the container. This allows user to 
-      #potentially make changes to the modules and they will be dynamically loaded.
-      - ./beats/metricbeat/modules.d/:/usr/share/metricbeat/modules.d/
-      #Allows us to report on docker from the hosts information
-      - /var/run/docker.sock:/var/run/docker.sock
-    depends_on:
-      - elasticsearch
-    environment:
-      - ELASTICSEARCH_URL=http://elasticsearch:9200
-      - KIBANA_URL=http://kibana:5601
-      - LOGSTASH_URL=http://logstash:9600
-      - POSTGRESQL_URL="postgresql://db:5432/tapdb?sslmode=disable"
-      - POSTGRESQL_USERNAME=tapuser
-      - POSTGRESQL_PASSWORD="Dr@p3rUs3r"
-    extra_hosts:
-      - "elasticsearch:172.17.0.1" # The IP of docker0 interface to access host from container
-      - "kibana:172.17.0.1" # The IP of docker0 interface to access host from container
-      - "logstash:172.17.0.1"
-      - "db:172.17.0.1"
-    command: metricbeat -e -system.hostfs=/hostfs -strict.perms=false
-    network_mode: host # Mandatory to monitor HOST filesystem, memory, processes,...
-
-networks:
-  esnet:
-    external:
-      name: esnet
diff --git a/docker/docker-compose-6.5.4.yml b/docker/docker-compose-6.5.4.yml
deleted file mode 100644
index dd104ac..0000000
--- a/docker/docker-compose-6.5.4.yml
+++ /dev/null
@@ -1,163 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Apache Flagon Single-Node Build
-
-version: "3"
-services:
-
-  # Startup
-  startup:
-    build: ./startup
-    depends_on:
-      - "elasticsearch"
-    command: bash /opt/entrypoint.sh
-
-  # Site
-  site:
-    build: ./site
-    ports:
-      - 8080:8080
-    depends_on:
-      - "logstash"
-    command: python -m SimpleHTTPServer 8080
-
-  # Elasticsearch
-  elasticsearch:
-    build: ./elasticsearch/6.5.4
-    environment:
-      - NODE_MASTER=true
-      - NUMBER_OF_MASTERS=1
-      - NODE_COORDINATE=true
-      - "DISCOVERY_SERVICE=0.0.0.0"
-      - NODE_DATA=true
-      - NODE_INGEST=true
-      - MAX_LOCAL_STORAGE_NODES=1
-      - NETWORK_HOST=0.0.0.0
-      - HTTP_ENABLE=true
-      - HTTP_CORS_ENABLE=true
-      - HTTP_CORS_ALLOW_ORIGIN=*
-      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-    ulimits:
-      memlock:
-        soft: -1
-        hard: -1
-    healthcheck:
-      test: ["CMD", "curl","-s" ,"-f", "-u", "http://localhost:9200/_cluster/health"]
-    # Mount volumes to backup elasticsearch data
-#    volumes:
-#      - esdata:/usr/share/elasticsaerch/data
-    ports:
-      - "9200:9200"
-    networks:
-      - esnet
-
-  # Kibana
-  kibana:
-    build: ./kibana/6.5.4
-    environment:
-      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-      - "ELASTICSEARCH_URL=http://elasticsearch:9200"
-    ports:
-      - "5601:5601"
-    depends_on:
-      - "elasticsearch"
-    networks:
-      - esnet
-
-  # Logstash
-  logstash:
-    build: ./logstash/6.5.4
-    environment:
-      - "ELASTICSEARCH_URL=elasticsearch:9200"
-    ports:
-      - 8100:8100
-    volumes:
-      - ./logstash/6.5.4/pipeline/logstash-userale.conf:/usr/share/logstash/pipeline/logstash-userale.conf
-      - ./logstash/6.5.4/templates/userale.json:/usr/share/logstash/templates/userale.json
-    depends_on:
-      - "elasticsearch"
-    networks:
-      - esnet
-
-  # Distill
-  distill:
-     build: ./distill
-     ports:
-       - 8090:8090
-     depends_on:
-       - "elasticsearch"
-     networks:
-       - esnet
-
-  # TAP's Database
-  db:
-     build: ./db
-     image: senssoft/postgres:latest
-     ports:
-       - "5432:5432"
-
-  # TAP
-  tap:
-     build: ./tap
-     command: bash -c "/usr/src/app/wait-for-postgres.sh"
-     ports:
-       - "8010:8010"
-     depends_on:
-       - db
-     links:
-       - db:db
-
-  # Specific container and configuration to monitor the HOST (filesystem, memory, processes,...)
-  metricbeat:
-    image: docker.elastic.co/beats/metricbeat:6.5.4
-#    restart: unless-stopped
-    user: root
-    pid: host
-    volumes:
-      #The commented sections below enable Metricbeat to monitor the Docker host
-      #rather than the Metricbeat container. These are used by the system module.
-      - /proc:/hostfs/proc:ro
-      - /sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro
-      #We mount the host filesystem so we can report on disk usage with the system module
-      - /:/hostfs:ro
-      #Mount the metricbeat configuration so users can make edits
-      - ./beats/metricbeat/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml
-      #Mount the modules.d directory into the container. This allows user to 
-      #potentially make changes to the modules and they will be dynamically loaded.
-      - ./beats/metricbeat/modules.d/:/usr/share/metricbeat/modules.d/
-      #Allows us to report on docker from the hosts information
-      - /var/run/docker.sock:/var/run/docker.sock
-    depends_on:
-      - elasticsearch
-    environment:
-      - ELASTICSEARCH_URL=http://elasticsearch:9200
-      - KIBANA_URL=http://kibana:5601
-      - LOGSTASH_URL=http://logstash:9600
-      - POSTGRESQL_URL="postgresql://db:5432/tapdb?sslmode=disable"
-      - POSTGRESQL_USERNAME=tapuser
-      - POSTGRESQL_PASSWORD="Dr@p3rUs3r"
-    extra_hosts:
-      - "elasticsearch:172.17.0.1" # The IP of docker0 interface to access host from container
-      - "kibana:172.17.0.1" # The IP of docker0 interface to access host from container
-      - "logstash:172.17.0.1"
-      - "db:172.17.0.1"
-    command: metricbeat -e -system.hostfs=/hostfs -strict.perms=false
-    network_mode: host # Mandatory to monitor HOST filesystem, memory, processes,...
-
-networks:
-  esnet:
-    external:
-      name: esnet
diff --git a/docker/docker-compose-6.6.2.yml b/docker/docker-compose-6.6.2.yml
deleted file mode 100644
index 4c7647f..0000000
--- a/docker/docker-compose-6.6.2.yml
+++ /dev/null
@@ -1,163 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Apache Flagon Single-Node Build
-
-version: "3"
-services:
-
-  # Startup
-  startup:
-    build: ./startup
-    depends_on:
-      - "elasticsearch"
-    command: bash /opt/entrypoint.sh
-
-  # Site
-  site:
-    build: ./site
-    ports:
-      - 8080:8080
-    depends_on:
-      - "logstash"
-    command: python -m SimpleHTTPServer 8080
-
-  # Elasticsearch
-  elasticsearch:
-    build: ./elasticsearch/6.6.2
-    environment:
-      - NODE_MASTER=true
-      - NUMBER_OF_MASTERS=1
-      - NODE_COORDINATE=true
-      - "DISCOVERY_SERVICE=0.0.0.0"
-      - NODE_DATA=true
-      - NODE_INGEST=true
-      - MAX_LOCAL_STORAGE_NODES=1
-      - NETWORK_HOST=0.0.0.0
-      - HTTP_ENABLE=true
-      - HTTP_CORS_ENABLE=true
-      - HTTP_CORS_ALLOW_ORIGIN=*
-      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-    ulimits:
-      memlock:
-        soft: -1
-        hard: -1
-    healthcheck:
-      test: ["CMD", "curl","-s" ,"-f", "-u", "http://localhost:9200/_cluster/health"]
-    # Mount volumes to backup elasticsearch data
-#    volumes:
-#      - esdata:/usr/share/elasticsaerch/data
-    ports:
-      - "9200:9200"
-    networks:
-      - esnet
-
-  # Kibana
-  kibana:
-    build: ./kibana/6.6.2
-    environment:
-      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-      - "ELASTICSEARCH_URL=http://elasticsearch:9200"
-    ports:
-      - "5601:5601"
-    depends_on:
-      - "elasticsearch"
-    networks:
-      - esnet
-
-  # Logstash
-  logstash:
-    build: ./logstash/6.6.2
-    environment:
-      - "ELASTICSEARCH_URL=elasticsearch:9200"
-    ports:
-      - 8100:8100
-    volumes:
-      - ./logstash/6.6.2/pipeline/logstash-userale.conf:/usr/share/logstash/pipeline/logstash-userale.conf
-      - ./logstash/6.6.2/templates/userale.json:/usr/share/logstash/templates/userale.json
-    depends_on:
-      - "elasticsearch"
-    networks:
-      - esnet
-
-  # Distill
-  distill:
-     build: ./distill
-     ports:
-       - 8090:8090
-     depends_on:
-       - "elasticsearch"
-     networks:
-       - esnet
-
-  # TAP's Database
-  db:
-     build: ./db
-     image: senssoft/postgres:latest
-     ports:
-       - "5432:5432"
-
-  # TAP
-  tap:
-     build: ./tap
-     command: bash -c "/usr/src/app/wait-for-postgres.sh"
-     ports:
-       - "8010:8010"
-     depends_on:
-       - db
-     links:
-       - db:db
-
-  # Specific container and configuration to monitor the HOST (filesystem, memory, processes,...)
-  metricbeat:
-    image: docker.elastic.co/beats/metricbeat-oss:6.6.2
-#    restart: unless-stopped
-    user: root
-    pid: host
-    volumes:
-      #The commented sections below enable Metricbeat to monitor the Docker host
-      #rather than the Metricbeat container. These are used by the system module.
-      - /proc:/hostfs/proc:ro
-      - /sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro
-      #We mount the host filesystem so we can report on disk usage with the system module
-      - /:/hostfs:ro
-      #Mount the metricbeat configuration so users can make edits
-      - ./beats/metricbeat/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml
-      #Mount the modules.d directory into the container. This allows user to 
-      #potentially make changes to the modules and they will be dynamically loaded.
-      - ./beats/metricbeat/modules.d/:/usr/share/metricbeat/modules.d/
-      #Allows us to report on docker from the hosts information
-      - /var/run/docker.sock:/var/run/docker.sock
-    depends_on:
-      - elasticsearch
-    environment:
-      - ELASTICSEARCH_URL=http://elasticsearch:9200
-      - KIBANA_URL=http://kibana:5601
-      - LOGSTASH_URL=http://logstash:9600
-      - POSTGRESQL_URL="postgresql://db:5432/tapdb?sslmode=disable"
-      - POSTGRESQL_USERNAME=tapuser
-      - POSTGRESQL_PASSWORD="Dr@p3rUs3r"
-    extra_hosts:
-      - "elasticsearch:172.17.0.1" # The IP of docker0 interface to access host from container
-      - "kibana:172.17.0.1" # The IP of docker0 interface to access host from container
-      - "logstash:172.17.0.1"
-      - "db:172.17.0.1"
-    command: metricbeat -e -system.hostfs=/hostfs -strict.perms=false
-    network_mode: host # Mandatory to monitor HOST filesystem, memory, processes,...
-
-networks:
-  esnet:
-    external:
-      name: esnet
diff --git a/docker/docker-compose-8.11.3.yml b/docker/docker-compose-8.11.3.yml
deleted file mode 100644
index 5363f90..0000000
--- a/docker/docker-compose-8.11.3.yml
+++ /dev/null
@@ -1,157 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Apache Flagon Single-Node Build
-
-version: "3"
-services:
-
-  # Startup
-  startup:
-    build: ./startup
-    depends_on:
-      - "elasticsearch"
-    command: bash /opt/entrypoint.sh
-
-  # Site
-  site:
-    build: ./site
-    ports:
-      - 8080:8080
-    depends_on:
-      - "logstash"
-    command: python -m http.server 8080
-
-  # Elasticsearch
-  elasticsearch:
-    build: ./elasticsearch/8.11.3
-    environment:
-      - INITIAL_MASTER_NODES=elasticsearch
-      - "DISCOVERY_SERVICE=0.0.0.0"
-      - NETWORK_HOST=0.0.0.0
-      - HTTP_CORS_ENABLE=true
-      - HTTP_CORS_ALLOW_ORIGIN=*
-      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-    ulimits:
-      memlock:
-        soft: -1
-        hard: -1
-    healthcheck:
-      test: ["CMD", "curl","-s" ,"-f", "-u", "http://localhost:9200/_cluster/health"]
-    # Mount volumes to backup elasticsearch data
-    volumes:
-#      - esdata:/usr/share/elasticsaerch/data
-      - ./elasticsearch/8.11.3/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro,Z
-    ports:
-      - "9200:9200"
-    networks:
-      - esnet
-
-  # Kibana
-  kibana:
-    build: ./kibana/8.11.3
-    environment:
-      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-      - "ELASTICSEARCH_URL=http://elasticsearch:9200"
-    ports:
-      - "5601:5601"
-    depends_on:
-      - "elasticsearch"
-    networks:
-      - esnet
-
-  # Logstash
-  logstash:
-    build: ./logstash/8.11.3
-    environment:
-      - "ELASTICSEARCH_URL=elasticsearch:9200"
-    ports:
-      - 8100:8100
-    volumes:
-      - ./logstash/8.11.3/pipeline/logstash-userale.conf:/usr/share/logstash/pipeline/logstash-userale.conf
-      - ./logstash/8.11.3/templates/userale.json:/usr/share/logstash/templates/userale.json
-    depends_on:
-      - "elasticsearch"
-    networks:
-      - esnet
-
-  # Distill
-  distill:
-     build: ./distill
-     ports:
-       - 8090:8090
-     depends_on:
-       - "elasticsearch"
-     networks:
-       - esnet
-
-  # TAP's Database
-  db:
-     build: ./db
-     image: senssoft/postgres:latest
-     ports:
-       - "5432:5432"
-
-  # TAP
-  tap:
-     build: ./tap
-     command: bash -c "/usr/src/app/wait-for-postgres.sh"
-     ports:
-       - "8010:8010"
-     depends_on:
-       - db
-     links:
-       - db:db
-
-  # Specific container and configuration to monitor the HOST (filesystem, memory, processes,...)
-  metricbeat:
-    image: docker.elastic.co/beats/metricbeat:8.11.3
-#    restart: unless-stopped
-    user: root
-    pid: host
-    volumes:
-      #The commented sections below enable Metricbeat to monitor the Docker host
-      #rather than the Metricbeat container. These are used by the system module.
-      - /proc:/hostfs/proc:ro
-      - /sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro
-      #We mount the host filesystem so we can report on disk usage with the system module
-      - /:/hostfs:ro
-      #Mount the metricbeat configuration so users can make edits
-      - ./beats/metricbeat/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml
-      #Mount the modules.d directory into the container. This allows user to 
-      #potentially make changes to the modules and they will be dynamically loaded.
-      - ./beats/metricbeat/modules.d/:/usr/share/metricbeat/modules.d/
-      #Allows us to report on docker from the hosts information
-      - /var/run/docker.sock:/var/run/docker.sock
-    depends_on:
-      - elasticsearch
-    environment:
-      - ELASTICSEARCH_URL=http://elasticsearch:9200
-      - KIBANA_URL=http://kibana:5601
-      - LOGSTASH_URL=http://logstash:9600
-      - POSTGRESQL_URL="postgresql://db:5432/tapdb?sslmode=disable"
-      - POSTGRESQL_USERNAME=tapuser
-      - POSTGRESQL_PASSWORD="Dr@p3rUs3r"
-    extra_hosts:
-      - "elasticsearch:172.17.0.1" # The IP of docker0 interface to access host from container
-      - "kibana:172.17.0.1" # The IP of docker0 interface to access host from container
-      - "logstash:172.17.0.1"
-      - "db:172.17.0.1"
-    command: metricbeat -e -system.hostfs=/hostfs -strict.perms=false
-    network_mode: host # Mandatory to monitor HOST filesystem, memory, processes,...
-
-network:
-  name:
-    external: true
\ No newline at end of file
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 86e3921..d263dbb 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -1,21 +1,5 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+version: '3.7'
 
-# Apache Flagon Single-Node Build
-
-version: "3"
 services:
 
   # Site
@@ -27,96 +11,114 @@ services:
       - "logstash"
     command: python -m http.server 8080
 
-  # Elasticsearch
-  elasticsearch:
-    build: ./elasticsearch/8.11.3
-    environment:
-      - INITIAL_MASTER_NODES=elasticsearch
-      - "DISCOVERY_SERVICE=0.0.0.0"
-      - NETWORK_HOST=0.0.0.0
-      - HTTP_CORS_ENABLE=true
-      - HTTP_CORS_ALLOW_ORIGIN=*
-      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-    ulimits:
-      memlock:
-        soft: -1
-        hard: -1
-    healthcheck:
-      test: ["CMD", "curl","-s" ,"-f", "-u", "http://localhost:9200/_cluster/health"]
-    # Mount volumes to backup elasticsearch data
+  # The 'setup' service runs a one-off script which initializes users inside
+  # Elasticsearch — such as 'logstash_internal' and 'kibana_system' — with the
+  # values of the passwords defined in the '.env' file. It also creates the
+  # roles required by some of these users.
+  #
+  # This task only needs to be performed once, during the *initial* startup of
+  # the stack. Any subsequent run will reset the passwords of existing users to
+  # the values defined inside the '.env' file, and the built-in roles to their
+  # default permissions.
+  #
+  # By default, it is excluded from the services started by 'docker compose up'
+  # due to the non-default profile it belongs to. To run it, either provide the
+  # '--profile=setup' CLI flag to Compose commands, or "up" the service by name
+  # such as 'docker compose up setup'.
+  setup:
+    profiles:
+      - setup
+    build:
+      context: setup/
+      args:
+        ELASTIC_VERSION: ${ELASTIC_VERSION}
+    init: true
     volumes:
-#      - esdata:/usr/share/elasticsaerch/data
-      - ./elasticsearch/8.11.3/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro,Z
-    user: "1000:0"
-    ports:
-      - "9200:9200"
+      - ./setup/entrypoint.sh:/entrypoint.sh:ro,Z
+      - ./setup/lib.sh:/lib.sh:ro,Z
+      - ./setup/roles:/roles:ro,Z
+    environment:
+      ELASTIC_PASSWORD: ${ELASTIC_PASSWORD:-}
+      LOGSTASH_INTERNAL_PASSWORD: ${LOGSTASH_INTERNAL_PASSWORD:-}
+      KIBANA_SYSTEM_PASSWORD: ${KIBANA_SYSTEM_PASSWORD:-}
+      METRICBEAT_INTERNAL_PASSWORD: ${METRICBEAT_INTERNAL_PASSWORD:-}
+      FILEBEAT_INTERNAL_PASSWORD: ${FILEBEAT_INTERNAL_PASSWORD:-}
+      HEARTBEAT_INTERNAL_PASSWORD: ${HEARTBEAT_INTERNAL_PASSWORD:-}
+      MONITORING_INTERNAL_PASSWORD: ${MONITORING_INTERNAL_PASSWORD:-}
+      BEATS_SYSTEM_PASSWORD: ${BEATS_SYSTEM_PASSWORD:-}
     networks:
-      - esnet
+      - elk
+    depends_on:
+      - elasticsearch
 
-  # Kibana
-  kibana:
-    build: ./kibana/8.11.3
-    environment:
-      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-      - "ELASTICSEARCH_URL=http://elasticsearch:9200"
-    user: "1000:0"
+  elasticsearch:
+    build:
+      context: elasticsearch/
+      args:
+        ELASTIC_VERSION: ${ELASTIC_VERSION}
+    volumes:
+      - ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro,Z
+      - elasticsearch:/usr/share/elasticsearch/data:Z
     ports:
-      - "5601:5601"
-    depends_on:
-      - "elasticsearch"
+      - 9200:9200
+      - 9300:9300
+    environment:
+      node.name: elasticsearch
+      ES_JAVA_OPTS: -Xms512m -Xmx512m
+      # Bootstrap password.
+      # Used to initialize the keystore during the initial startup of
+      # Elasticsearch. Ignored on subsequent runs.
+      ELASTIC_PASSWORD: ${ELASTIC_PASSWORD:-}
+      # Use single node discovery in order to disable production mode and avoid bootstrap checks.
+      # see: https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
+      discovery.type: single-node
     networks:
-      - esnet
+      - elk
+    restart: unless-stopped
 
-  # Logstash
   logstash:
-    build: ./logstash/8.11.3
-    environment:
-      - "ELASTICSEARCH_URL=elasticsearch:9200"
-    user: "1000:0"
-    ports:
-      - 8100:8100
+    build:
+      context: logstash/
+      args:
+        ELASTIC_VERSION: ${ELASTIC_VERSION}
     volumes:
-      - ./logstash/8.11.3/pipeline/logstash-userale.conf:/usr/share/logstash/pipeline/logstash-userale.conf
-      - ./logstash/8.11.3/templates/userale.json:/usr/share/logstash/templates/userale.json
-    depends_on:
-      - "elasticsearch"
+      - ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml:ro,Z
+      - ./logstash/pipeline:/usr/share/logstash/pipeline:ro,Z
+      - ./logstash/templates:/usr/share/logstash/templates:ro,z
+    ports:
+      - 5044:5044
+      - 50000:50000/tcp
+      - 50000:50000/udp
+      - 9600:9600
+    environment:
+      LS_JAVA_OPTS: -Xms256m -Xmx256m
+      LOGSTASH_INTERNAL_PASSWORD: ${LOGSTASH_INTERNAL_PASSWORD:-}
     networks:
-      - esnet
+      - elk
+    depends_on:
+      - elasticsearch
+    restart: unless-stopped
 
-  # Specific container and configuration to monitor the HOST (filesystem, memory, processes,...)
-  metricbeat:
-    image: docker.elastic.co/beats/metricbeat:8.11.3
-#    restart: unless-stopped
-    user: root
-    pid: host
+  kibana:
+    build:
+      context: kibana/
+      args:
+        ELASTIC_VERSION: ${ELASTIC_VERSION}
     volumes:
-      #The commented sections below enable Metricbeat to monitor the Docker host
-      #rather than the Metricbeat container. These are used by the system module.
-      - /proc:/hostfs/proc:ro
-      - /sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro
-      #We mount the host filesystem so we can report on disk usage with the system module
-      - /:/hostfs:ro
-      #Mount the metricbeat configuration so users can make edits
-      - ./beats/metricbeat/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml
-      #Mount the modules.d directory into the container. This allows user to 
-      #potentially make changes to the modules and they will be dynamically loaded.
-      - ./beats/metricbeat/modules.d/:/usr/share/metricbeat/modules.d/
-      #Allows us to report on docker from the hosts information
-      - /var/run/docker.sock:/var/run/docker.sock
-    depends_on:
-      - kibana
+      - ./kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml:ro,Z
+    ports:
+      - 5601:5601
     environment:
-      - ELASTICSEARCH_URL=http://elasticsearch:9200
-      - KIBANA_URL=http://kibana:5601
-      - LOGSTASH_URL=http://logstash:9600
-    extra_hosts:
-      - "elasticsearch:172.17.0.1" # The IP of docker0 interface to access host from container
-      - "kibana:172.17.0.1" # The IP of docker0 interface to access host from container
-      - "logstash:172.17.0.1"
-    command: metricbeat -e -system.hostfs=/hostfs -strict.perms=false
-    network_mode: host # Mandatory to monitor HOST filesystem, memory, processes,...
+      KIBANA_SYSTEM_PASSWORD: ${KIBANA_SYSTEM_PASSWORD:-}
+    networks:
+      - elk
+    depends_on:
+      - elasticsearch
+    restart: unless-stopped
 
 networks:
-  esnet:
-    name: esnet
-    external: true
+  elk:
+    driver: bridge
+
+volumes:
+  elasticsearch:
diff --git a/docker/docs/images/DockerBeats_Dashboard.png b/docker/docs/images/DockerBeats_Dashboard.png
deleted file mode 100644
index 6a0ae0c..0000000
Binary files a/docker/docs/images/DockerBeats_Dashboard.png and /dev/null differ
diff --git a/docker/docs/images/configure_index.png b/docker/docs/images/configure_index.png
deleted file mode 100644
index 31ebe02..0000000
Binary files a/docker/docs/images/configure_index.png and /dev/null differ
diff --git a/docker/docs/images/confirmation.png b/docker/docs/images/confirmation.png
deleted file mode 100644
index 467b4d4..0000000
Binary files a/docker/docs/images/confirmation.png and /dev/null differ
diff --git a/docker/docs/images/dashboard.png b/docker/docs/images/dashboard.png
deleted file mode 100644
index b693e80..0000000
Binary files a/docker/docs/images/dashboard.png and /dev/null differ
diff --git a/docker/docs/images/kibana_Discover.png b/docker/docs/images/kibana_Discover.png
deleted file mode 100644
index 25ce975..0000000
Binary files a/docker/docs/images/kibana_Discover.png and /dev/null differ
diff --git a/docker/docs/images/management.png b/docker/docs/images/management.png
deleted file mode 100644
index 90a26ae..0000000
Binary files a/docker/docs/images/management.png and /dev/null differ
diff --git a/docker/docs/images/viz_import.png b/docker/docs/images/viz_import.png
deleted file mode 100644
index 110cadd..0000000
Binary files a/docker/docs/images/viz_import.png and /dev/null differ
diff --git a/docker/elasticsearch/.dockerignore b/docker/elasticsearch/.dockerignore
new file mode 100644
index 0000000..37eef9d
--- /dev/null
+++ b/docker/elasticsearch/.dockerignore
@@ -0,0 +1,6 @@
+# Ignore Docker build files
+Dockerfile
+.dockerignore
+
+# Ignore OS artifacts
+**/.DS_Store
diff --git a/docker/elasticsearch/.env b/docker/elasticsearch/.env
deleted file mode 100644
index f322e1a..0000000
--- a/docker/elasticsearch/.env
+++ /dev/null
@@ -1,8 +0,0 @@
-NODE_MASTER=true
-NODE_DATA=true
-NETWORK_HOST=0.0.0.0
-NODE_COORDINATE=false
-HTTP_ENABLE=true
-HTTP_CORS_ENABLE=true
-HTTP_CORS_ALLOW_ORIGIN="127.0.0.1"	
-DISCOVERY_TIMETOUT=10s
\ No newline at end of file
diff --git a/docker/elasticsearch/5.6.3/Dockerfile b/docker/elasticsearch/5.6.3/Dockerfile
deleted file mode 100644
index 4f1e5c9..0000000
--- a/docker/elasticsearch/5.6.3/Dockerfile
+++ /dev/null
@@ -1,29 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/elasticsearch/elasticsearch:5.6.3
-
-MAINTAINER Michelle Beard <ms...@apache.org>
-
-# Override config
-COPY config /usr/share/elasticsearch/config
-
-# Set environment
-ENV CLUSTER_NAME SensSoft
-
-# Kubernetes requires swap is turned off
-ENV MEMORY_LOCK false
-
-EXPOSE 9200
\ No newline at end of file
diff --git a/docker/elasticsearch/5.6.3/config/elasticsearch.yml b/docker/elasticsearch/5.6.3/config/elasticsearch.yml
deleted file mode 100644
index 66eba53..0000000
--- a/docker/elasticsearch/5.6.3/config/elasticsearch.yml
+++ /dev/null
@@ -1,54 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-cluster:
-  name: ${CLUSTER_NAME}
-
-node:
-  master: ${NODE_MASTER}
-  data: ${NODE_DATA}
-  ingest: ${NODE_INGEST}
-  max_local_storage_nodes: ${MAX_LOCAL_STORAGE_NODES}
-
-network.host: ${NETWORK_HOST}
-
-search.remote.connect: ${NODE_COORDINATE}
-
-path:
-  data: /usr/share/elasticsearch/data
-  logs: /usr/share/elasticsearch/log
-
-bootstrap:
-  memory_lock: ${MEMORY_LOCK}
-
-http:
-  enabled: ${HTTP_ENABLE}
-  compression: true
-  cors:
-    enabled: ${HTTP_CORS_ENABLE}
-    allow-origin: ${HTTP_CORS_ALLOW_ORIGIN}
-
-# Disable X-Pack
-xpack.ml.enabled: false
-xpack.monitoring.enabled: false
-xpack.security.enabled: false
-xpack.watcher.enabled: false
-
-# Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):
-discovery:
-  zen:
-    ping.unicast.hosts: ${DISCOVERY_SERVICE}
-    minimum_master_nodes: ${NUMBER_OF_MASTERS}
-
diff --git a/docker/elasticsearch/5.6.3/config/log4j2.properties b/docker/elasticsearch/5.6.3/config/log4j2.properties
deleted file mode 100644
index 7f7817d..0000000
--- a/docker/elasticsearch/5.6.3/config/log4j2.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-status = error
-
-appender.console.type = Console
-appender.console.name = console
-appender.console.layout.type = PatternLayout
-appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%m%n
-
-rootLogger.level = info
-rootLogger.appenderRef.console.ref = console
\ No newline at end of file
diff --git a/docker/elasticsearch/6.2.2/Dockerfile b/docker/elasticsearch/6.2.2/Dockerfile
deleted file mode 100644
index f1fe259..0000000
--- a/docker/elasticsearch/6.2.2/Dockerfile
+++ /dev/null
@@ -1,30 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.2
-
-MAINTAINER Michelle Beard <ms...@apache.org>
-
-# Override config
-COPY config /usr/share/elasticsearch/config
-RUN chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/config
-
-# Set environment
-ENV CLUSTER_NAME SensSoft
-
-# Kubernetes requires swap is turned off
-ENV MEMORY_LOCK false
-
-EXPOSE 9200
\ No newline at end of file
diff --git a/docker/elasticsearch/6.2.2/config/elasticsearch.yml b/docker/elasticsearch/6.2.2/config/elasticsearch.yml
deleted file mode 100644
index 5525441..0000000
--- a/docker/elasticsearch/6.2.2/config/elasticsearch.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Custom config borrowed from Pires: https://github.com/pires/docker-elasticsearch-kubernetes
-
-cluster:
-  name: ${CLUSTER_NAME:SensSoft}
-
-node:
-  master: ${NODE_MASTER:true}
-  data: ${NODE_DATA:true}
-  name: ${NODE_NAME:${HOSTNAME}}
-  ingest: ${NODE_INGEST:true}
-  max_local_storage_nodes: ${MAX_LOCAL_STORAGE_NODES:1}
-
-network.host: ${NETWORK_HOST:0.0.0.0}
-
-search.remote.connect: ${NODE_COORDINATE:true}
-
-path:
-  data: /usr/share/elasticsearch/data
-  logs: /usr/share/elasticsearch/log
-
-bootstrap:
-  memory_lock: ${MEMORY_LOCK}
-
-http:
-  enabled: ${HTTP_ENABLE:true}
-  compression: true
-  cors:
-    enabled: ${HTTP_CORS_ENABLE:true}
-    allow-origin: ${HTTP_CORS_ALLOW_ORIGIN:"*"}
-
-# Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):
-discovery:
-  zen:
-    ping.unicast.hosts: ${DISCOVERY_SERVICE:127.0.0.1, [::1]}
-    ping.unicast.hosts.resolve_timeout: ${DISCOVERY_TIMEOUT:5s}
-    minimum_master_nodes: ${NUMBER_OF_MASTERS:1}
diff --git a/docker/elasticsearch/6.2.2/config/log4j2.properties b/docker/elasticsearch/6.2.2/config/log4j2.properties
deleted file mode 100644
index 7f7817d..0000000
--- a/docker/elasticsearch/6.2.2/config/log4j2.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-status = error
-
-appender.console.type = Console
-appender.console.name = console
-appender.console.layout.type = PatternLayout
-appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%m%n
-
-rootLogger.level = info
-rootLogger.appenderRef.console.ref = console
\ No newline at end of file
diff --git a/docker/elasticsearch/6.5.4/Dockerfile b/docker/elasticsearch/6.5.4/Dockerfile
deleted file mode 100644
index dc4ffeb..0000000
--- a/docker/elasticsearch/6.5.4/Dockerfile
+++ /dev/null
@@ -1,30 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/elasticsearch/elasticsearch-oss:6.5.4
-
-MAINTAINER Michelle Beard <ms...@apache.org>
-
-# Override config
-COPY config /usr/share/elasticsearch/config
-RUN chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/config
-
-# Set environment
-ENV CLUSTER_NAME SensSoft
-
-# Kubernetes requires swap is turned off
-ENV MEMORY_LOCK false
-
-EXPOSE 9200
\ No newline at end of file
diff --git a/docker/elasticsearch/6.5.4/config/elasticsearch.yml b/docker/elasticsearch/6.5.4/config/elasticsearch.yml
deleted file mode 100644
index 5525441..0000000
--- a/docker/elasticsearch/6.5.4/config/elasticsearch.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Custom config borrowed from Pires: https://github.com/pires/docker-elasticsearch-kubernetes
-
-cluster:
-  name: ${CLUSTER_NAME:SensSoft}
-
-node:
-  master: ${NODE_MASTER:true}
-  data: ${NODE_DATA:true}
-  name: ${NODE_NAME:${HOSTNAME}}
-  ingest: ${NODE_INGEST:true}
-  max_local_storage_nodes: ${MAX_LOCAL_STORAGE_NODES:1}
-
-network.host: ${NETWORK_HOST:0.0.0.0}
-
-search.remote.connect: ${NODE_COORDINATE:true}
-
-path:
-  data: /usr/share/elasticsearch/data
-  logs: /usr/share/elasticsearch/log
-
-bootstrap:
-  memory_lock: ${MEMORY_LOCK}
-
-http:
-  enabled: ${HTTP_ENABLE:true}
-  compression: true
-  cors:
-    enabled: ${HTTP_CORS_ENABLE:true}
-    allow-origin: ${HTTP_CORS_ALLOW_ORIGIN:"*"}
-
-# Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):
-discovery:
-  zen:
-    ping.unicast.hosts: ${DISCOVERY_SERVICE:127.0.0.1, [::1]}
-    ping.unicast.hosts.resolve_timeout: ${DISCOVERY_TIMEOUT:5s}
-    minimum_master_nodes: ${NUMBER_OF_MASTERS:1}
diff --git a/docker/elasticsearch/6.5.4/config/log4j2.properties b/docker/elasticsearch/6.5.4/config/log4j2.properties
deleted file mode 100644
index c86c995..0000000
--- a/docker/elasticsearch/6.5.4/config/log4j2.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-status = error
-
-appender.console.type = Console
-appender.console.name = console
-appender.console.layout.type = PatternLayout
-appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] [%node_name] %marker%m%n 
-
-rootLogger.level = info
-rootLogger.appenderRef.console.ref = console
\ No newline at end of file
diff --git a/docker/elasticsearch/6.6.2/Dockerfile b/docker/elasticsearch/6.6.2/Dockerfile
deleted file mode 100644
index 10516b7..0000000
--- a/docker/elasticsearch/6.6.2/Dockerfile
+++ /dev/null
@@ -1,30 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/elasticsearch/elasticsearch-oss:6.6.2
-
-MAINTAINER Joshua Poore <po...@apache.org>
-
-# Override config
-COPY config /usr/share/elasticsearch/config
-RUN chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/config
-
-# Set environment
-ENV CLUSTER_NAME Flagon
-
-# Kubernetes requires swap is turned off
-ENV MEMORY_LOCK false
-
-EXPOSE 9200
\ No newline at end of file
diff --git a/docker/elasticsearch/6.6.2/config/elasticsearch.yml b/docker/elasticsearch/6.6.2/config/elasticsearch.yml
deleted file mode 100644
index a819696..0000000
--- a/docker/elasticsearch/6.6.2/config/elasticsearch.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Custom config borrowed from Pires: https://github.com/pires/docker-elasticsearch-kubernetes
-
-cluster:
-  name: ${CLUSTER_NAME:FLAGON}
-
-node:
-  master: ${NODE_MASTER:true}
-  data: ${NODE_DATA:true}
-  name: ${NODE_NAME:${HOSTNAME}}
-  ingest: ${NODE_INGEST:true}
-  max_local_storage_nodes: ${MAX_LOCAL_STORAGE_NODES:1}
-
-network.host: ${NETWORK_HOST:0.0.0.0}
-
-search.remote.connect: ${NODE_COORDINATE:true}
-
-path:
-  data: /usr/share/elasticsearch/data
-  logs: /usr/share/elasticsearch/log
-
-bootstrap:
-  memory_lock: ${MEMORY_LOCK}
-
-http:
-  enabled: ${HTTP_ENABLE:true}
-  compression: true
-  cors:
-    enabled: ${HTTP_CORS_ENABLE:true}
-    allow-origin: ${HTTP_CORS_ALLOW_ORIGIN:"*"}
-
-# Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):
-discovery:
-  zen:
-    ping.unicast.hosts: ${DISCOVERY_SERVICE:127.0.0.1, [::1]}
-    ping.unicast.hosts.resolve_timeout: ${DISCOVERY_TIMEOUT:5s}
-    minimum_master_nodes: ${NUMBER_OF_MASTERS:1}
diff --git a/docker/elasticsearch/6.6.2/config/log4j2.properties b/docker/elasticsearch/6.6.2/config/log4j2.properties
deleted file mode 100644
index c86c995..0000000
--- a/docker/elasticsearch/6.6.2/config/log4j2.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-status = error
-
-appender.console.type = Console
-appender.console.name = console
-appender.console.layout.type = PatternLayout
-appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] [%node_name] %marker%m%n 
-
-rootLogger.level = info
-rootLogger.appenderRef.console.ref = console
\ No newline at end of file
diff --git a/docker/elasticsearch/6.8.2/Dockerfile b/docker/elasticsearch/6.8.2/Dockerfile
deleted file mode 100644
index c0d4698..0000000
--- a/docker/elasticsearch/6.8.2/Dockerfile
+++ /dev/null
@@ -1,30 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.2
-
-MAINTAINER Joshua Poore <po...@apache.org>
-
-# Override config
-COPY config /usr/share/elasticsearch/config
-RUN chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/config
-
-# Set environment
-ENV CLUSTER_NAME Flagon
-
-# Kubernetes requires swap is turned off
-ENV MEMORY_LOCK false
-
-EXPOSE 9200
\ No newline at end of file
diff --git a/docker/elasticsearch/6.8.2/config/elasticsearch.yml b/docker/elasticsearch/6.8.2/config/elasticsearch.yml
deleted file mode 100644
index a819696..0000000
--- a/docker/elasticsearch/6.8.2/config/elasticsearch.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Custom config borrowed from Pires: https://github.com/pires/docker-elasticsearch-kubernetes
-
-cluster:
-  name: ${CLUSTER_NAME:FLAGON}
-
-node:
-  master: ${NODE_MASTER:true}
-  data: ${NODE_DATA:true}
-  name: ${NODE_NAME:${HOSTNAME}}
-  ingest: ${NODE_INGEST:true}
-  max_local_storage_nodes: ${MAX_LOCAL_STORAGE_NODES:1}
-
-network.host: ${NETWORK_HOST:0.0.0.0}
-
-search.remote.connect: ${NODE_COORDINATE:true}
-
-path:
-  data: /usr/share/elasticsearch/data
-  logs: /usr/share/elasticsearch/log
-
-bootstrap:
-  memory_lock: ${MEMORY_LOCK}
-
-http:
-  enabled: ${HTTP_ENABLE:true}
-  compression: true
-  cors:
-    enabled: ${HTTP_CORS_ENABLE:true}
-    allow-origin: ${HTTP_CORS_ALLOW_ORIGIN:"*"}
-
-# Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):
-discovery:
-  zen:
-    ping.unicast.hosts: ${DISCOVERY_SERVICE:127.0.0.1, [::1]}
-    ping.unicast.hosts.resolve_timeout: ${DISCOVERY_TIMEOUT:5s}
-    minimum_master_nodes: ${NUMBER_OF_MASTERS:1}
diff --git a/docker/elasticsearch/6.8.2/config/log4j2.properties b/docker/elasticsearch/6.8.2/config/log4j2.properties
deleted file mode 100644
index c86c995..0000000
--- a/docker/elasticsearch/6.8.2/config/log4j2.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-status = error
-
-appender.console.type = Console
-appender.console.name = console
-appender.console.layout.type = PatternLayout
-appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] [%node_name] %marker%m%n 
-
-rootLogger.level = info
-rootLogger.appenderRef.console.ref = console
\ No newline at end of file
diff --git a/docker/elasticsearch/8.11.3/Dockerfile b/docker/elasticsearch/8.11.3/Dockerfile
deleted file mode 100644
index e3e5d3a..0000000
--- a/docker/elasticsearch/8.11.3/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/elasticsearch/elasticsearch:8.11.3
-
-# Set environment
-ENV CLUSTER_NAME Flagon
-
-# Kubernetes requires swap is turned off
-ENV MEMORY_LOCK false
-
-EXPOSE 9200
\ No newline at end of file
diff --git a/docker/elasticsearch/8.11.3/config/elasticsearch.yml b/docker/elasticsearch/8.11.3/config/elasticsearch.yml
deleted file mode 100644
index caaf7ea..0000000
--- a/docker/elasticsearch/8.11.3/config/elasticsearch.yml
+++ /dev/null
@@ -1,70 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Custom config borrowed from Pires: https://github.com/pires/docker-elasticsearch-kubernetes
-
-cluster:
-  name: ${CLUSTER_NAME:FLAGON}
-  initial_master_nodes: ["${INITIAL_MASTER_NODES:elasticsearch}"]
-
-node:
-  name: ${NODE_NAME:elasticsearch}
-
-network.host: ${NETWORK_HOST:0.0.0.0}
-
-path:
-  data: /usr/share/elasticsearch/data
-  logs: /usr/share/elasticsearch/log
-
-bootstrap:
-  memory_lock: ${MEMORY_LOCK}
-
-http:
-  compression: true
-  cors:
-    enabled: ${HTTP_CORS_ENABLE:true}
-    allow-origin: ${HTTP_CORS_ALLOW_ORIGIN:"*"}
-
-# Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):
-discovery:
-    seed_hosts: ["${DISCOVERY_SERVICE:0.0.0.0}"]
-
-## X-Pack settings
-## see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-settings.html
-#
-xpack.license.self_generated.type: trial
-xpack.security.enabled: false
-
-##
-## TLS configuration
-## See instructions from README to enable.
-##
-
-## Communications between nodes in a cluster
-## see https://www.elastic.co/guide/en/elasticsearch/reference/current/configuring-tls.html#tls-transport
-#
-#xpack.security.transport.ssl.enabled: true
-#xpack.security.transport.ssl.verification_mode: certificate
-#xpack.security.transport.ssl.certificate_authorities: [ ca.crt ]
-#xpack.security.transport.ssl.certificate: elasticsearch.crt
-#xpack.security.transport.ssl.key: elasticsearch.key
-
-## HTTP client communications
-## see https://www.elastic.co/guide/en/elasticsearch/reference/current/configuring-tls.html#tls-http
-#
-#xpack.security.http.ssl.enabled: true
-#xpack.security.http.ssl.certificate_authorities: [ ca.crt ]
-#xpack.security.http.ssl.certificate: elasticsearch.crt
-#xpack.security.http.ssl.key: elasticsearch.key
\ No newline at end of file
diff --git a/docker/elasticsearch/8.11.3/config/log4j2.properties b/docker/elasticsearch/8.11.3/config/log4j2.properties
deleted file mode 100644
index c86c995..0000000
--- a/docker/elasticsearch/8.11.3/config/log4j2.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-status = error
-
-appender.console.type = Console
-appender.console.name = console
-appender.console.layout.type = PatternLayout
-appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] [%node_name] %marker%m%n 
-
-rootLogger.level = info
-rootLogger.appenderRef.console.ref = console
\ No newline at end of file
diff --git a/docker/elasticsearch/Dockerfile b/docker/elasticsearch/Dockerfile
new file mode 100644
index 0000000..22528c6
--- /dev/null
+++ b/docker/elasticsearch/Dockerfile
@@ -0,0 +1,7 @@
+ARG ELASTIC_VERSION
+
+# https://www.docker.elastic.co/
+FROM docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION}
+
+# Add your elasticsearch plugins setup here
+# Example: RUN elasticsearch-plugin install analysis-icu
diff --git a/docker/elasticsearch/config/elasticsearch.yml b/docker/elasticsearch/config/elasticsearch.yml
new file mode 100644
index 0000000..d66f071
--- /dev/null
+++ b/docker/elasticsearch/config/elasticsearch.yml
@@ -0,0 +1,12 @@
+---
+## Default Elasticsearch configuration from Elasticsearch base image.
+## https://github.com/elastic/elasticsearch/blob/main/distribution/docker/src/docker/config/elasticsearch.yml
+#
+cluster.name: docker-cluster
+network.host: 0.0.0.0
+
+## X-Pack settings
+## see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-settings.html
+#
+xpack.license.self_generated.type: trial
+xpack.security.enabled: true
diff --git a/docker/kibana/.dockerignore b/docker/kibana/.dockerignore
new file mode 100644
index 0000000..37eef9d
--- /dev/null
+++ b/docker/kibana/.dockerignore
@@ -0,0 +1,6 @@
+# Ignore Docker build files
+Dockerfile
+.dockerignore
+
+# Ignore OS artifacts
+**/.DS_Store
diff --git a/docker/kibana/5.6.3/Dockerfile b/docker/kibana/5.6.3/Dockerfile
deleted file mode 100644
index 9017f29..0000000
--- a/docker/kibana/5.6.3/Dockerfile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/kibana/kibana:5.6.3
-
-MAINTAINER Michelle Beard <ms...@apache.org>
-
-# Override config
-COPY config /usr/share/kibana/config
-
-# Remove x-pack
-RUN kibana-plugin remove x-pack
-
-EXPOSE 5601
\ No newline at end of file
diff --git a/docker/kibana/5.6.3/Saved Objects/Apache SensSoft Page Usage Dashboard.json b/docker/kibana/5.6.3/Saved Objects/Apache SensSoft Page Usage Dashboard.json
deleted file mode 100644
index c9e569e..0000000
--- a/docker/kibana/5.6.3/Saved Objects/Apache SensSoft Page Usage Dashboard.json	
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "_id": "3f02bf70-12eb-11e9-a1e0-631cf5fb9335",
-    "_type": "dashboard",
-    "_source": {
-      "title": "Apache SensSoft Page Usage Dashboard",
-      "hits": 0,
-      "description": "Abstracts Multi-User Interaction with Single Pages/Apps. Ideal for script-tag, page-level UserALE.js deployments.",
-      "panelsJSON": "[{\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":32,\"x\":16,\"y\":0},\"id\":\"f7ca4560-be7c-11e7-8adf-fd0a12531eca\",\"panelIndex\":\"2\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 400\":\"rgb(255,245,240)\",\"1,200 - 1,600\":\"rgb(203,24,29)\",\"400 - 800\":\"rgb(252,187,161)\",\"800 - 1,200\":\"rgb(251,106,74)\"},\"legendOpen\":false}},\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":20,\"x\":12,\"y\":15},\"id\":\" [...]
-      "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}",
-      "version": 1,
-      "timeRestore": false,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"UserID Search\",\"disabled\":true,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"userId\",\"negate\":false,\"params\":{\"query\":\"nobody\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"nobody\"},\"query\":{\"match\":{\"userId\":{\"query\":\"nobody\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Host Search\",\"disabled\":true,\"in [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/5.6.3/Saved Objects/Apache SensSoft User Access Dashboard.json b/docker/kibana/5.6.3/Saved Objects/Apache SensSoft User Access Dashboard.json
deleted file mode 100644
index c2a08ff..0000000
--- a/docker/kibana/5.6.3/Saved Objects/Apache SensSoft User Access Dashboard.json	
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "_id": "ab9f1f90-fce6-11e8-a156-87bcaf41506e",
-    "_type": "dashboard",
-    "_source": {
-      "title": "Apache SensSoft User Access Dashboard",
-      "hits": 0,
-      "description": "Abstracts Multi-User Utilization of IT Assets (and Web Usage). Ideal for UserALE.js Web Extension deployments.",
-      "panelsJSON": "[{\"panelIndex\":\"2\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":15,\"i\":\"2\"},\"id\":\"f7ca4560-be7c-11e7-8adf-fd0a12531eca\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"panelIndex\":\"4\",\"gridData\":{\"x\":0,\"y\":0,\"w\":12,\"h\":15,\"i\":\"4\"},\"embeddableConfig\":{\"spy\":null},\"id\":\"e36b1f40-be7c-11e7-8adf-fd0a12531eca\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"panelIndex\":\"5\",\"gridData\":{\"x\":12,\"y\":15,\"w\":36,\"h\":15 [...]
-      "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}",
-      "version": 1,
-      "timeRestore": false,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"UserID Search\",\"disabled\":true,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"userId\",\"negate\":false,\"params\":{\"query\":\"nobody\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"nobody\"},\"query\":{\"match\":{\"userId\":{\"query\":\"nobody\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Host Search\",\"disabled\":true,\"in [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/5.6.3/Saved Objects/Apache SensSoft Visualizations.json b/docker/kibana/5.6.3/Saved Objects/Apache SensSoft Visualizations.json
deleted file mode 100644
index 34ba9f0..0000000
--- a/docker/kibana/5.6.3/Saved Objects/Apache SensSoft Visualizations.json	
+++ /dev/null
@@ -1,226 +0,0 @@
-[
-  {
-    "_id": "bcd7c950-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Event Types",
-      "visState": "{\"title\":\"Top Event Types\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Top Event Types\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"type\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Event types\"}}],\"lis [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "e36b1f40-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Total Number of Logs",
-      "visState": "{\"title\":\"Total Number of Logs\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Total number of logs\"}}],\"listeners\":{}}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "2bf40010-be7d-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Events by Targets",
-      "visState": "{\"title\":\"Events by Targets\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"HTML Tags\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "64045a30-fce4-11e8-a156-87bcaf41506e",
-    "_type": "visualization",
-    "_source": {
-      "title": "Total Logs by Unique Hosts",
-      "visState": "{\"title\":\"Total Logs by Unique Hosts\",\"type\":\"horizontal_bar\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"legendPosition\":\"righ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
-      }
-    }
-  },
-  {
-    "_id": "429c0940-fce6-11e8-a156-87bcaf41506e",
-    "_type": "visualization",
-    "_source": {
-      "title": "Host Activity By Day",
-      "visState": "{\"title\":\"Host Activity By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\" [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 500\":\"rgb(255,245,240)\",\"500 - 1,000\":\"rgb(252,187,161)\",\"1,000 - 1,500\":\"rgb(251,106,74)\",\"1,500 - 2,000\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    }
-  },
-  {
-    "_id": "5eeda1e0-06e5-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of Unique Pages Visited",
-      "visState": "{\"title\":\"Number of Unique Pages Visited\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\" [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "e1b6c290-06e1-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Pages Visited",
-      "visState": "{\"title\":\"Top Pages Visited\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Top Event Types\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\" [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "f7ca4560-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Time Series",
-      "visState": "{\"title\":\"Time Series\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(*)\",\"interval\":\"auto\"},\"aggs\":[],\"listeners\":{}}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "b7324e60-12ec-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top URL Visits By Day",
-      "visState": "{\"title\":\"Top URL Visits By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\ [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 400\":\"rgb(255,245,240)\",\"400 - 800\":\"rgb(252,187,161)\",\"800 - 1,200\":\"rgb(251,106,74)\",\"1,200 - 1,600\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    }
-  },
-  {
-    "_id": "d5a95ce0-06e3-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Page Visits By Day",
-      "visState": "{\"title\":\"Top Page Visits By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{ [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 7\":\"rgb(255,245,240)\",\"7 - 13\":\"rgb(252,187,161)\",\"13 - 20\":\"rgb(251,106,74)\",\"20 - 26\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    }
-  },
-  {
-    "_id": "f7c690a0-12ef-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top UI Elements Used",
-      "visState": "{\"title\":\"Top UI Elements Used\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Element Interactions\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "5b467330-06e2-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of Unique Hosts",
-      "visState": "{\"title\":\"Number of Unique Hosts\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\" [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "ba30fd80-12ee-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of User Events",
-      "visState": "{\"title\":\"Number of User Events\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"f [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "20b291b0-12f2-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Most Active Users by Host",
-      "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Number of User Events\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Host\",\"field\":\"host\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"_term\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTi [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
-      }
-    }
-  },
-  {
-    "_id": "bf327a20-12f3-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Target UI Element Cloud",
-      "visState": "{\"title\":\"Top Target UI Element Cloud\",\"type\":\"tagcloud\",\"params\":{\"scale\":\"linear\",\"orientation\":\"single\",\"minFontSize\":8,\"maxFontSize\":29,\"hideLabel\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Count of User Events\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"target\",\"otherBucket\":false,\"otherBucketLabel\":\"Ot [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    }
-  },
-  {
-    "_id": "887fec40-1886-11e9-bdac-e790c2bff4d4",
-    "_type": "visualization",
-    "_source": {
-      "title": "A/B Test",
-      "visState": "{\"title\":\"A/B Test\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"HTML Tags\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}},\"filter\":[]}"
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/5.6.3/Saved Objects/Drill-Down Search.json b/docker/kibana/5.6.3/Saved Objects/Drill-Down Search.json
deleted file mode 100644
index 749609b..0000000
--- a/docker/kibana/5.6.3/Saved Objects/Drill-Down Search.json	
+++ /dev/null
@@ -1,22 +0,0 @@
-[
-  {
-    "_id": "67105880-06e6-11e9-8c58-f38cfff498f6",
-    "_type": "search",
-    "_source": {
-      "title": "Drill-Down Search",
-      "description": "",
-      "hits": 0,
-      "columns": [
-        "_source"
-      ],
-      "sort": [
-        "clientTime",
-        "desc"
-      ],
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"URL Search\",\"disabled\":false,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"pageUrl\",\"negate\":false,\"params\":{\"query\":\"http://senssoft.incubator.apache.org/\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"http://sensso [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/5.6.3/config/kibana.yml b/docker/kibana/5.6.3/config/kibana.yml
deleted file mode 100644
index 11cbee3..0000000
--- a/docker/kibana/5.6.3/config/kibana.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-server.name: kibana
-server.host: "0"
-elasticsearch.url: http://localhost:9200
-
-# Disable X-Pack
-xpack.graph.enabled: false
-xpack.ml.enabled: false
-xpack.monitoring.enabled: false
-xpack.reporting.enabled: false
-xpack.security.enabled: false
diff --git a/docker/kibana/6.2.2/Dockerfile b/docker/kibana/6.2.2/Dockerfile
deleted file mode 100644
index 630fe98..0000000
--- a/docker/kibana/6.2.2/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/kibana/kibana-oss:6.2.2
-
-MAINTAINER Michelle Beard <ms...@apache.org>
-
-EXPOSE 5601
diff --git a/docker/kibana/6.2.2/Saved Objects/Apache SensSoft Page Usage Dashboard.json b/docker/kibana/6.2.2/Saved Objects/Apache SensSoft Page Usage Dashboard.json
deleted file mode 100644
index c9e569e..0000000
--- a/docker/kibana/6.2.2/Saved Objects/Apache SensSoft Page Usage Dashboard.json	
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "_id": "3f02bf70-12eb-11e9-a1e0-631cf5fb9335",
-    "_type": "dashboard",
-    "_source": {
-      "title": "Apache SensSoft Page Usage Dashboard",
-      "hits": 0,
-      "description": "Abstracts Multi-User Interaction with Single Pages/Apps. Ideal for script-tag, page-level UserALE.js deployments.",
-      "panelsJSON": "[{\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":32,\"x\":16,\"y\":0},\"id\":\"f7ca4560-be7c-11e7-8adf-fd0a12531eca\",\"panelIndex\":\"2\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 400\":\"rgb(255,245,240)\",\"1,200 - 1,600\":\"rgb(203,24,29)\",\"400 - 800\":\"rgb(252,187,161)\",\"800 - 1,200\":\"rgb(251,106,74)\"},\"legendOpen\":false}},\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":20,\"x\":12,\"y\":15},\"id\":\" [...]
-      "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}",
-      "version": 1,
-      "timeRestore": false,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"UserID Search\",\"disabled\":true,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"userId\",\"negate\":false,\"params\":{\"query\":\"nobody\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"nobody\"},\"query\":{\"match\":{\"userId\":{\"query\":\"nobody\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Host Search\",\"disabled\":true,\"in [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.2.2/Saved Objects/Apache SensSoft User Access Dashboard.json b/docker/kibana/6.2.2/Saved Objects/Apache SensSoft User Access Dashboard.json
deleted file mode 100644
index c2a08ff..0000000
--- a/docker/kibana/6.2.2/Saved Objects/Apache SensSoft User Access Dashboard.json	
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "_id": "ab9f1f90-fce6-11e8-a156-87bcaf41506e",
-    "_type": "dashboard",
-    "_source": {
-      "title": "Apache SensSoft User Access Dashboard",
-      "hits": 0,
-      "description": "Abstracts Multi-User Utilization of IT Assets (and Web Usage). Ideal for UserALE.js Web Extension deployments.",
-      "panelsJSON": "[{\"panelIndex\":\"2\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":15,\"i\":\"2\"},\"id\":\"f7ca4560-be7c-11e7-8adf-fd0a12531eca\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"panelIndex\":\"4\",\"gridData\":{\"x\":0,\"y\":0,\"w\":12,\"h\":15,\"i\":\"4\"},\"embeddableConfig\":{\"spy\":null},\"id\":\"e36b1f40-be7c-11e7-8adf-fd0a12531eca\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"panelIndex\":\"5\",\"gridData\":{\"x\":12,\"y\":15,\"w\":36,\"h\":15 [...]
-      "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}",
-      "version": 1,
-      "timeRestore": false,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"UserID Search\",\"disabled\":true,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"userId\",\"negate\":false,\"params\":{\"query\":\"nobody\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"nobody\"},\"query\":{\"match\":{\"userId\":{\"query\":\"nobody\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Host Search\",\"disabled\":true,\"in [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.2.2/Saved Objects/Apache SensSoft Visualizations.json b/docker/kibana/6.2.2/Saved Objects/Apache SensSoft Visualizations.json
deleted file mode 100644
index 34ba9f0..0000000
--- a/docker/kibana/6.2.2/Saved Objects/Apache SensSoft Visualizations.json	
+++ /dev/null
@@ -1,226 +0,0 @@
-[
-  {
-    "_id": "bcd7c950-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Event Types",
-      "visState": "{\"title\":\"Top Event Types\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Top Event Types\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"type\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Event types\"}}],\"lis [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "e36b1f40-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Total Number of Logs",
-      "visState": "{\"title\":\"Total Number of Logs\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Total number of logs\"}}],\"listeners\":{}}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "2bf40010-be7d-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Events by Targets",
-      "visState": "{\"title\":\"Events by Targets\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"HTML Tags\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "64045a30-fce4-11e8-a156-87bcaf41506e",
-    "_type": "visualization",
-    "_source": {
-      "title": "Total Logs by Unique Hosts",
-      "visState": "{\"title\":\"Total Logs by Unique Hosts\",\"type\":\"horizontal_bar\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"legendPosition\":\"righ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
-      }
-    }
-  },
-  {
-    "_id": "429c0940-fce6-11e8-a156-87bcaf41506e",
-    "_type": "visualization",
-    "_source": {
-      "title": "Host Activity By Day",
-      "visState": "{\"title\":\"Host Activity By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\" [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 500\":\"rgb(255,245,240)\",\"500 - 1,000\":\"rgb(252,187,161)\",\"1,000 - 1,500\":\"rgb(251,106,74)\",\"1,500 - 2,000\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    }
-  },
-  {
-    "_id": "5eeda1e0-06e5-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of Unique Pages Visited",
-      "visState": "{\"title\":\"Number of Unique Pages Visited\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\" [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "e1b6c290-06e1-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Pages Visited",
-      "visState": "{\"title\":\"Top Pages Visited\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Top Event Types\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\" [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "f7ca4560-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Time Series",
-      "visState": "{\"title\":\"Time Series\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(*)\",\"interval\":\"auto\"},\"aggs\":[],\"listeners\":{}}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "b7324e60-12ec-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top URL Visits By Day",
-      "visState": "{\"title\":\"Top URL Visits By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\ [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 400\":\"rgb(255,245,240)\",\"400 - 800\":\"rgb(252,187,161)\",\"800 - 1,200\":\"rgb(251,106,74)\",\"1,200 - 1,600\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    }
-  },
-  {
-    "_id": "d5a95ce0-06e3-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Page Visits By Day",
-      "visState": "{\"title\":\"Top Page Visits By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{ [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 7\":\"rgb(255,245,240)\",\"7 - 13\":\"rgb(252,187,161)\",\"13 - 20\":\"rgb(251,106,74)\",\"20 - 26\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    }
-  },
-  {
-    "_id": "f7c690a0-12ef-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top UI Elements Used",
-      "visState": "{\"title\":\"Top UI Elements Used\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Element Interactions\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "5b467330-06e2-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of Unique Hosts",
-      "visState": "{\"title\":\"Number of Unique Hosts\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\" [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "ba30fd80-12ee-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of User Events",
-      "visState": "{\"title\":\"Number of User Events\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"f [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    }
-  },
-  {
-    "_id": "20b291b0-12f2-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Most Active Users by Host",
-      "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Number of User Events\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Host\",\"field\":\"host\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"_term\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTi [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
-      }
-    }
-  },
-  {
-    "_id": "bf327a20-12f3-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Target UI Element Cloud",
-      "visState": "{\"title\":\"Top Target UI Element Cloud\",\"type\":\"tagcloud\",\"params\":{\"scale\":\"linear\",\"orientation\":\"single\",\"minFontSize\":8,\"maxFontSize\":29,\"hideLabel\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Count of User Events\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"target\",\"otherBucket\":false,\"otherBucketLabel\":\"Ot [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    }
-  },
-  {
-    "_id": "887fec40-1886-11e9-bdac-e790c2bff4d4",
-    "_type": "visualization",
-    "_source": {
-      "title": "A/B Test",
-      "visState": "{\"title\":\"A/B Test\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"HTML Tags\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}},\"filter\":[]}"
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.2.2/Saved Objects/Drill-Down Search.json b/docker/kibana/6.2.2/Saved Objects/Drill-Down Search.json
deleted file mode 100644
index 749609b..0000000
--- a/docker/kibana/6.2.2/Saved Objects/Drill-Down Search.json	
+++ /dev/null
@@ -1,22 +0,0 @@
-[
-  {
-    "_id": "67105880-06e6-11e9-8c58-f38cfff498f6",
-    "_type": "search",
-    "_source": {
-      "title": "Drill-Down Search",
-      "description": "",
-      "hits": 0,
-      "columns": [
-        "_source"
-      ],
-      "sort": [
-        "clientTime",
-        "desc"
-      ],
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"URL Search\",\"disabled\":false,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"pageUrl\",\"negate\":false,\"params\":{\"query\":\"http://senssoft.incubator.apache.org/\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"http://sensso [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.2.2/config/kibana.yml b/docker/kibana/6.2.2/config/kibana.yml
deleted file mode 100644
index cc93fed..0000000
--- a/docker/kibana/6.2.2/config/kibana.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-server.name: kibana
-server.host: "0"
-elasticsearch.url: http://localhost:9200
diff --git a/docker/kibana/6.5.4/Dockerfile b/docker/kibana/6.5.4/Dockerfile
deleted file mode 100644
index c9e78e2..0000000
--- a/docker/kibana/6.5.4/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/kibana/kibana-oss:6.5.4
-
-MAINTAINER Michelle Beard <ms...@apache.org>
-
-EXPOSE 5601
diff --git a/docker/kibana/6.5.4/Saved Objects/Apache SensSoft Business Analytics Dashboard.json b/docker/kibana/6.5.4/Saved Objects/Apache SensSoft Business Analytics Dashboard.json
deleted file mode 100644
index eb2f22d..0000000
--- a/docker/kibana/6.5.4/Saved Objects/Apache SensSoft Business Analytics Dashboard.json	
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "_id": "90b264d0-2cd4-11e9-9b9a-95b7b006b436",
-    "_type": "dashboard",
-    "_source": {
-      "title": "Apache SensSoft Business Analytics Dashboard",
-      "hits": 0,
-      "description": "Abstracts Multi-User Interaction with Single Pages/Apps",
-      "panelsJSON": "[{\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 400\":\"rgb(255,245,240)\",\"1,200 - 1,600\":\"rgb(203,24,29)\",\"400 - 800\":\"rgb(252,187,161)\",\"800 - 1,200\":\"rgb(251,106,74)\"},\"legendOpen\":false}},\"gridData\":{\"h\":21,\"i\":\"5\",\"w\":48,\"x\":0,\"y\":84},\"id\":\"429c0940-fce6-11e8-a156-87bcaf41506e\",\"panelIndex\":\"5\",\"title\":\"Unique User Activity by Day\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"gridData\":{\"h\":15,\"i\":\ [...]
-      "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}",
-      "version": 1,
-      "timeRestore": false,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"UserID Search\",\"disabled\":true,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"userId\",\"negate\":false,\"params\":{\"query\":\"nobody\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"nobody\"},\"query\":{\"match\":{\"userId\":{\"query\":\"nobody\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Host Search\",\"disabled\":true,\"in [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.5.4/Saved Objects/Apache SensSoft Page Usage Dashboard.json b/docker/kibana/6.5.4/Saved Objects/Apache SensSoft Page Usage Dashboard.json
deleted file mode 100644
index c9e569e..0000000
--- a/docker/kibana/6.5.4/Saved Objects/Apache SensSoft Page Usage Dashboard.json	
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "_id": "3f02bf70-12eb-11e9-a1e0-631cf5fb9335",
-    "_type": "dashboard",
-    "_source": {
-      "title": "Apache SensSoft Page Usage Dashboard",
-      "hits": 0,
-      "description": "Abstracts Multi-User Interaction with Single Pages/Apps. Ideal for script-tag, page-level UserALE.js deployments.",
-      "panelsJSON": "[{\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":32,\"x\":16,\"y\":0},\"id\":\"f7ca4560-be7c-11e7-8adf-fd0a12531eca\",\"panelIndex\":\"2\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 400\":\"rgb(255,245,240)\",\"1,200 - 1,600\":\"rgb(203,24,29)\",\"400 - 800\":\"rgb(252,187,161)\",\"800 - 1,200\":\"rgb(251,106,74)\"},\"legendOpen\":false}},\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":20,\"x\":12,\"y\":15},\"id\":\" [...]
-      "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}",
-      "version": 1,
-      "timeRestore": false,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"UserID Search\",\"disabled\":true,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"userId\",\"negate\":false,\"params\":{\"query\":\"nobody\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"nobody\"},\"query\":{\"match\":{\"userId\":{\"query\":\"nobody\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Host Search\",\"disabled\":true,\"in [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.5.4/Saved Objects/Apache SensSoft User Access Dashboard.json b/docker/kibana/6.5.4/Saved Objects/Apache SensSoft User Access Dashboard.json
deleted file mode 100644
index cf34ced..0000000
--- a/docker/kibana/6.5.4/Saved Objects/Apache SensSoft User Access Dashboard.json	
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "_id": "ab9f1f90-fce6-11e8-a156-87bcaf41506e",
-    "_type": "dashboard",
-    "_source": {
-      "title": "Apache SensSoft User Access Dashboard",
-      "hits": 0,
-      "description": "Abstracts Multi-User Utilization of IT Assets (and Web Usage). Ideal for UserALE.js Web Extension deployments.",
-      "panelsJSON": "[{\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":32,\"x\":16,\"y\":0},\"id\":\"f7ca4560-be7c-11e7-8adf-fd0a12531eca\",\"panelIndex\":\"2\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"embeddableConfig\":{\"spy\":null},\"gridData\":{\"h\":15,\"i\":\"4\",\"w\":16,\"x\":0,\"y\":0},\"id\":\"e36b1f40-be7c-11e7-8adf-fd0a12531eca\",\"panelIndex\":\"4\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":36,\"x\":12,\"y\":15},\"id\": [...]
-      "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}",
-      "version": 1,
-      "timeRestore": false,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"UserID Search\",\"disabled\":true,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"userId\",\"negate\":false,\"params\":{\"query\":\"nobody\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"nobody\"},\"query\":{\"match\":{\"userId\":{\"query\":\"nobody\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Host Search\",\"disabled\":true,\"in [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.5.4/Saved Objects/Apache SensSoft Visualizations.json b/docker/kibana/6.5.4/Saved Objects/Apache SensSoft Visualizations.json
deleted file mode 100644
index 95fc985..0000000
--- a/docker/kibana/6.5.4/Saved Objects/Apache SensSoft Visualizations.json	
+++ /dev/null
@@ -1,359 +0,0 @@
-[
-  {
-    "_id": "28070240-2d12-11e9-9b9a-95b7b006b436",
-    "_type": "visualization",
-    "_source": {
-      "title": "Activity by SessionID",
-      "visState": "{\"type\":\"timelion\",\"title\":\"Activity by SessionID\",\"params\":{\"expression\":\".es(*,split=sessionID:10)\",\"interval\":\"auto\"}}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "36a0eb90-2cd6-11e9-9b9a-95b7b006b436",
-    "_type": "visualization",
-    "_source": {
-      "title": "Time-Series Unique Hosts",
-      "visState": "{\"title\":\"Time-Series Unique Hosts\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(metric=cardinality:host).label('Unique Users (Hosts)')\",\"interval\":\"auto\"},\"aggs\":[]}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "f7ca4560-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Time Series",
-      "visState": "{\"title\":\"Time Series\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(*)\",\"interval\":\"auto\"},\"aggs\":[],\"listeners\":{}}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "f7c690a0-12ef-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top UI Elements Used",
-      "visState": "{\"title\":\"Top UI Elements Used\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Element Interactions\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "ba30fd80-12ee-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of User Events",
-      "visState": "{\"title\":\"Number of User Events\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"f [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "20b291b0-12f2-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Most Active Users by Host",
-      "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Number of User Events\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Host\",\"field\":\"host\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"_term\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTi [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "bf327a20-12f3-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Target UI Element Cloud",
-      "visState": "{\"title\":\"Top Target UI Element Cloud\",\"type\":\"tagcloud\",\"params\":{\"scale\":\"linear\",\"orientation\":\"single\",\"minFontSize\":8,\"maxFontSize\":29,\"hideLabel\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Count of User Events\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"target\",\"otherBucket\":false,\"otherBucketLabel\":\"Ot [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "887fec40-1886-11e9-bdac-e790c2bff4d4",
-    "_type": "visualization",
-    "_source": {
-      "title": "A/B Test",
-      "visState": "{\"title\":\"A/B Test\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"HTML Tags\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "bcd7c950-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Event Types",
-      "visState": "{\"title\":\"Top Event Types\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Top Event Types\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"type\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Event types\"}}],\"lis [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "e36b1f40-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Total Number of Logs",
-      "visState": "{\"title\":\"Total Number of Logs\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Total number of logs\"}}],\"listeners\":{}}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "2bf40010-be7d-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Events by Targets",
-      "visState": "{\"title\":\"Events by Targets\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"HTML Tags\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "64045a30-fce4-11e8-a156-87bcaf41506e",
-    "_type": "visualization",
-    "_source": {
-      "title": "Total Logs by Unique Hosts",
-      "visState": "{\"title\":\"Total Logs by Unique Hosts\",\"type\":\"horizontal_bar\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"legendPosition\":\"righ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "429c0940-fce6-11e8-a156-87bcaf41506e",
-    "_type": "visualization",
-    "_source": {
-      "title": "Host Activity By Day",
-      "visState": "{\"title\":\"Host Activity By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\" [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 500\":\"rgb(255,245,240)\",\"500 - 1,000\":\"rgb(252,187,161)\",\"1,000 - 1,500\":\"rgb(251,106,74)\",\"1,500 - 2,000\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "5eeda1e0-06e5-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of Unique Pages Visited",
-      "visState": "{\"title\":\"Number of Unique Pages Visited\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\" [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "b7324e60-12ec-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top URL Visits By Day",
-      "visState": "{\"title\":\"Top URL Visits By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\ [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 400\":\"rgb(255,245,240)\",\"400 - 800\":\"rgb(252,187,161)\",\"800 - 1,200\":\"rgb(251,106,74)\",\"1,200 - 1,600\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "d1ba2560-2d03-11e9-9b9a-95b7b006b436",
-    "_type": "visualization",
-    "_source": {
-      "title": "Average Number of Events per Unique Users (Hosts)",
-      "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customBucket\":{\"enabled\":true,\"id\":\"1-bucket\",\"params\":{\"field\":\"host\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderAgg\":{\"enabled\":true,\"id\":\"1-bucket-orderAgg\",\"params\":{},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!median\",\"!std_dev\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\",\"!avg_bucket\",\"!max_bucket [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "822808b0-2d0c-11e9-9b9a-95b7b006b436",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Web Pages by Unique Visitors",
-      "visState": "{\"title\":\"Top Web Pages by Unique Visitors\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"host\",\"customLabel\":\"Unique Visitors\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket [...]
-      "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "5b467330-06e2-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of Unique Users (Hosts)",
-      "visState": "{\"title\":\"Number of Unique Users (Hosts)\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\" [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "33e09c60-2ff2-11e9-be20-a737e788a0aa",
-    "_type": "visualization",
-    "_source": {
-      "title": "Funnel",
-      "visState": "{\"title\":\"Funnel\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true, [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "d5a95ce0-06e3-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Page Activity By Day",
-      "visState": "{\"title\":\"Page Activity By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\" [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 125\":\"rgb(255,245,240)\",\"125 - 250\":\"rgb(252,187,161)\",\"250 - 375\":\"rgb(251,106,74)\",\"375 - 500\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "e1b6c290-06e1-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Pages by Activity",
-      "visState": "{\"title\":\"Top Pages by Activity\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Top Event Types\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"fie [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7fed1930-2cd2-11e9-9b9a-95b7b006b436\",\"query\":{\"query\":\"*\",\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.5.4/Saved Objects/Drill-Down Search.json b/docker/kibana/6.5.4/Saved Objects/Drill-Down Search.json
deleted file mode 100644
index 749609b..0000000
--- a/docker/kibana/6.5.4/Saved Objects/Drill-Down Search.json	
+++ /dev/null
@@ -1,22 +0,0 @@
-[
-  {
-    "_id": "67105880-06e6-11e9-8c58-f38cfff498f6",
-    "_type": "search",
-    "_source": {
-      "title": "Drill-Down Search",
-      "description": "",
-      "hits": 0,
-      "columns": [
-        "_source"
-      ],
-      "sort": [
-        "clientTime",
-        "desc"
-      ],
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"URL Search\",\"disabled\":false,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"pageUrl\",\"negate\":false,\"params\":{\"query\":\"http://senssoft.incubator.apache.org/\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"http://sensso [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.5.4/config/kibana.yml b/docker/kibana/6.5.4/config/kibana.yml
deleted file mode 100644
index cc93fed..0000000
--- a/docker/kibana/6.5.4/config/kibana.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-server.name: kibana
-server.host: "0"
-elasticsearch.url: http://localhost:9200
diff --git a/docker/kibana/6.6.2/Dockerfile b/docker/kibana/6.6.2/Dockerfile
deleted file mode 100644
index 53108fc..0000000
--- a/docker/kibana/6.6.2/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/kibana/kibana-oss:6.6.2
-
-MAINTAINER Joshua Poore <po...@apache.org>
-
-EXPOSE 5601
diff --git a/docker/kibana/6.6.2/Saved Objects/Apache Flagon Business Analytics Dashboard.json b/docker/kibana/6.6.2/Saved Objects/Apache Flagon Business Analytics Dashboard.json
deleted file mode 100644
index bd56e2d..0000000
--- a/docker/kibana/6.6.2/Saved Objects/Apache Flagon Business Analytics Dashboard.json	
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "_id": "90b264d0-2cd4-11e9-9b9a-95b7b006b436",
-    "_type": "dashboard",
-    "_source": {
-      "title": "Apache Flagon Business Analytics Dashboard",
-      "hits": 0,
-      "description": "Abstracts Multi-User Interaction with Single Pages/Apps",
-      "panelsJSON": "[{\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 400\":\"rgb(255,245,240)\",\"1,200 - 1,600\":\"rgb(203,24,29)\",\"400 - 800\":\"rgb(252,187,161)\",\"800 - 1,200\":\"rgb(251,106,74)\"},\"legendOpen\":false}},\"gridData\":{\"x\":0,\"y\":84,\"w\":48,\"h\":21,\"i\":\"5\"},\"id\":\"429c0940-fce6-11e8-a156-87bcaf41506e\",\"panelIndex\":\"5\",\"title\":\"Unique User Activity by Day\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"embeddableConfig\":{\"vis\": [...]
-      "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}",
-      "version": 1,
-      "timeRestore": false,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"UserID Search\",\"disabled\":true,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"userId\",\"negate\":false,\"params\":{\"query\":\"nobody\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"nobody\"},\"query\":{\"match\":{\"userId\":{\"query\":\"nobody\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Host Search\",\"disabled\":true,\"in [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.6.2/Saved Objects/Apache Flagon Page Usage Dashboard.json b/docker/kibana/6.6.2/Saved Objects/Apache Flagon Page Usage Dashboard.json
deleted file mode 100644
index f66ec8c..0000000
--- a/docker/kibana/6.6.2/Saved Objects/Apache Flagon Page Usage Dashboard.json	
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "_id": "3f02bf70-12eb-11e9-a1e0-631cf5fb9335",
-    "_type": "dashboard",
-    "_source": {
-      "title": "Apache Flagon Page Usage Dashboard",
-      "hits": 0,
-      "description": "Abstracts Multi-User Interaction with Single Pages/Apps. Ideal for script-tag, page-level UserALE.js deployments.",
-      "panelsJSON": "[{\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":32,\"x\":16,\"y\":0},\"id\":\"f7ca4560-be7c-11e7-8adf-fd0a12531eca\",\"panelIndex\":\"2\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 400\":\"rgb(255,245,240)\",\"1,200 - 1,600\":\"rgb(203,24,29)\",\"400 - 800\":\"rgb(252,187,161)\",\"800 - 1,200\":\"rgb(251,106,74)\"},\"legendOpen\":false}},\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":20,\"x\":12,\"y\":15},\"id\":\" [...]
-      "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}",
-      "version": 1,
-      "timeRestore": false,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"UserID Search\",\"disabled\":true,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"userId\",\"negate\":false,\"params\":{\"query\":\"nobody\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"nobody\"},\"query\":{\"match\":{\"userId\":{\"query\":\"nobody\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Host Search\",\"disabled\":true,\"in [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.6.2/Saved Objects/Apache Flagon User Access Dashboard.json b/docker/kibana/6.6.2/Saved Objects/Apache Flagon User Access Dashboard.json
deleted file mode 100644
index 68b74bd..0000000
--- a/docker/kibana/6.6.2/Saved Objects/Apache Flagon User Access Dashboard.json	
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "_id": "ab9f1f90-fce6-11e8-a156-87bcaf41506e",
-    "_type": "dashboard",
-    "_source": {
-      "title": "Apache Flagon User Access Dashboard",
-      "hits": 0,
-      "description": "Abstracts Multi-User Utilization of IT Assets (and Web Usage). Ideal for UserALE.js Web Extension deployments.",
-      "panelsJSON": "[{\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":32,\"x\":16,\"y\":0},\"id\":\"f7ca4560-be7c-11e7-8adf-fd0a12531eca\",\"panelIndex\":\"2\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"embeddableConfig\":{\"spy\":null},\"gridData\":{\"h\":15,\"i\":\"4\",\"w\":16,\"x\":0,\"y\":0},\"id\":\"e36b1f40-be7c-11e7-8adf-fd0a12531eca\",\"panelIndex\":\"4\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":36,\"x\":12,\"y\":15},\"id\": [...]
-      "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}",
-      "version": 1,
-      "timeRestore": false,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"UserID Search\",\"disabled\":true,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"userId\",\"negate\":false,\"params\":{\"query\":\"nobody\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"nobody\"},\"query\":{\"match\":{\"userId\":{\"query\":\"nobody\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Host Search\",\"disabled\":true,\"in [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.6.2/Saved Objects/Apache Flagon Visualizations.json b/docker/kibana/6.6.2/Saved Objects/Apache Flagon Visualizations.json
deleted file mode 100644
index d7781e2..0000000
--- a/docker/kibana/6.6.2/Saved Objects/Apache Flagon Visualizations.json	
+++ /dev/null
@@ -1,427 +0,0 @@
-[
-  {
-    "_id": "d5a95ce0-06e3-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Page Activity By Day",
-      "visState": "{\"title\":\"Page Activity By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\" [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 125\":\"rgb(255,245,240)\",\"125 - 250\":\"rgb(252,187,161)\",\"250 - 375\":\"rgb(251,106,74)\",\"375 - 500\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "33e09c60-2ff2-11e9-be20-a737e788a0aa",
-    "_type": "visualization",
-    "_source": {
-      "title": "Funnel",
-      "visState": "{\"title\":\"Funnel\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true, [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "887fec40-1886-11e9-bdac-e790c2bff4d4",
-    "_type": "visualization",
-    "_source": {
-      "title": "A/B Test",
-      "visState": "{\"title\":\"A/B Test\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"HTML Tags\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "e36b1f40-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Total Number of Logs",
-      "visState": "{\"title\":\"Total Number of Logs\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Total number of logs\"}}],\"listeners\":{}}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "2bf40010-be7d-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Events by Targets",
-      "visState": "{\"title\":\"Events by Targets\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"HTML Tags\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "64045a30-fce4-11e8-a156-87bcaf41506e",
-    "_type": "visualization",
-    "_source": {
-      "title": "Total Logs by Unique Hosts",
-      "visState": "{\"title\":\"Total Logs by Unique Hosts\",\"type\":\"horizontal_bar\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"legendPosition\":\"righ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "f7c690a0-12ef-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top UI Elements Used",
-      "visState": "{\"title\":\"Top UI Elements Used\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Element Interactions\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "ba30fd80-12ee-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of User Events",
-      "visState": "{\"title\":\"Number of User Events\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"f [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "20b291b0-12f2-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Most Active Users by Host",
-      "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Number of User Events\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Host\",\"field\":\"host\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"_term\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTi [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "429c0940-fce6-11e8-a156-87bcaf41506e",
-    "_type": "visualization",
-    "_source": {
-      "title": "Host Activity By Day",
-      "visState": "{\"title\":\"Host Activity By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\" [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 500\":\"rgb(255,245,240)\",\"500 - 1,000\":\"rgb(252,187,161)\",\"1,000 - 1,500\":\"rgb(251,106,74)\",\"1,500 - 2,000\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "bcd7c950-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Event Types",
-      "visState": "{\"title\":\"Top Event Types\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Top Event Types\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"type\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Event types\"}}],\"lis [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "bf327a20-12f3-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Target UI Element Cloud",
-      "visState": "{\"title\":\"Top Target UI Element Cloud\",\"type\":\"tagcloud\",\"params\":{\"scale\":\"linear\",\"orientation\":\"single\",\"minFontSize\":8,\"maxFontSize\":29,\"hideLabel\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Count of User Events\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"target\",\"otherBucket\":false,\"otherBucketLabel\":\"Ot [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "e1b6c290-06e1-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Pages by Activity",
-      "visState": "{\"title\":\"Top Pages by Activity\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Top Event Types\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"fie [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":\"*\",\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "f7ca4560-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Time Series",
-      "visState": "{\"title\":\"Time Series\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(*)\",\"interval\":\"auto\"},\"aggs\":[],\"listeners\":{}}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "36a0eb90-2cd6-11e9-9b9a-95b7b006b436",
-    "_type": "visualization",
-    "_source": {
-      "title": "Time-Series Unique Hosts",
-      "visState": "{\"title\":\"Time-Series Unique Hosts\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(metric=cardinality:host).label('Unique Users (Hosts)')\",\"interval\":\"auto\"},\"aggs\":[]}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "28070240-2d12-11e9-9b9a-95b7b006b436",
-    "_type": "visualization",
-    "_source": {
-      "title": "Activity by SessionID",
-      "visState": "{\"type\":\"timelion\",\"title\":\"Activity by SessionID\",\"params\":{\"expression\":\".es(*,split=sessionID:10)\",\"interval\":\"auto\"}}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "5eeda1e0-06e5-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of Unique Pages Visited",
-      "visState": "{\"title\":\"Number of Unique Pages Visited\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\" [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "822808b0-2d0c-11e9-9b9a-95b7b006b436",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Web Pages by Unique Visitors",
-      "visState": "{\"title\":\"Top Web Pages by Unique Visitors\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"host\",\"customLabel\":\"Unique Visitors\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket [...]
-      "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "d1ba2560-2d03-11e9-9b9a-95b7b006b436",
-    "_type": "visualization",
-    "_source": {
-      "title": "Average Number of Events per Unique Users (Hosts)",
-      "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customBucket\":{\"enabled\":true,\"id\":\"1-bucket\",\"params\":{\"field\":\"host\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderAgg\":{\"enabled\":true,\"id\":\"1-bucket-orderAgg\",\"params\":{},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!median\",\"!std_dev\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\",\"!avg_bucket\",\"!max_bucket [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "b7324e60-12ec-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top URL Visits By Day",
-      "visState": "{\"title\":\"Top URL Visits By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\ [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 400\":\"rgb(255,245,240)\",\"400 - 800\":\"rgb(252,187,161)\",\"800 - 1,200\":\"rgb(251,106,74)\",\"1,200 - 1,600\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "bd56f810-a4da-11e9-baf2-196230c538eb",
-    "_type": "visualization",
-    "_source": {
-      "title": "Average Number of Events per Unique Users (userId)",
-      "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customBucket\":{\"enabled\":true,\"id\":\"1-bucket\",\"params\":{\"field\":\"userId\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderAgg\":{\"enabled\":true,\"id\":\"1-bucket-orderAgg\",\"params\":{},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!median\",\"!std_dev\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\",\"!avg_bucket\",\"!max_buck [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "28b7ad70-a4db-11e9-baf2-196230c538eb",
-    "_type": "visualization",
-    "_source": {
-      "title": "Most Active Users by userId",
-      "visState": "{\"title\":\"Most Active Users by userId\",\"type\":\"horizontal_bar\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"legendPosition\":\"rig [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "5b467330-06e2-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of Unique Users (userId)",
-      "visState": "{\"title\":\"Number of Unique Users (userId)\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "a712e550-a4da-11e9-baf2-196230c538eb",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of Unique Users (host)",
-      "visState": "{\"title\":\"Number of Unique Users (host)\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\": [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "51622390-a4db-11e9-baf2-196230c538eb",
-    "_type": "visualization",
-    "_source": {
-      "title": "Time-Series Unique Users (userId)",
-      "visState": "{\"title\":\"Time-Series Unique Users (userId)\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(split=userId:5,metric=cardinality:userId)\",\"interval\":\"auto\"},\"aggs\":[]}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.6.2/Saved Objects/Drill-Down Search.json b/docker/kibana/6.6.2/Saved Objects/Drill-Down Search.json
deleted file mode 100644
index 749609b..0000000
--- a/docker/kibana/6.6.2/Saved Objects/Drill-Down Search.json	
+++ /dev/null
@@ -1,22 +0,0 @@
-[
-  {
-    "_id": "67105880-06e6-11e9-8c58-f38cfff498f6",
-    "_type": "search",
-    "_source": {
-      "title": "Drill-Down Search",
-      "description": "",
-      "hits": 0,
-      "columns": [
-        "_source"
-      ],
-      "sort": [
-        "clientTime",
-        "desc"
-      ],
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"URL Search\",\"disabled\":false,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"pageUrl\",\"negate\":false,\"params\":{\"query\":\"http://senssoft.incubator.apache.org/\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"http://sensso [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.6.2/config/kibana.yml b/docker/kibana/6.6.2/config/kibana.yml
deleted file mode 100644
index cc93fed..0000000
--- a/docker/kibana/6.6.2/config/kibana.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-server.name: kibana
-server.host: "0"
-elasticsearch.url: http://localhost:9200
diff --git a/docker/kibana/6.8.2/Dockerfile b/docker/kibana/6.8.2/Dockerfile
deleted file mode 100644
index 1af3d25..0000000
--- a/docker/kibana/6.8.2/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/kibana/kibana-oss:6.8.2
-
-MAINTAINER Joshua Poore <po...@apache.org>
-
-EXPOSE 5601
diff --git a/docker/kibana/6.8.2/Saved Objects/Apache Flagon Business Analytics Dashboard.json b/docker/kibana/6.8.2/Saved Objects/Apache Flagon Business Analytics Dashboard.json
deleted file mode 100644
index bd56e2d..0000000
--- a/docker/kibana/6.8.2/Saved Objects/Apache Flagon Business Analytics Dashboard.json	
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "_id": "90b264d0-2cd4-11e9-9b9a-95b7b006b436",
-    "_type": "dashboard",
-    "_source": {
-      "title": "Apache Flagon Business Analytics Dashboard",
-      "hits": 0,
-      "description": "Abstracts Multi-User Interaction with Single Pages/Apps",
-      "panelsJSON": "[{\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 400\":\"rgb(255,245,240)\",\"1,200 - 1,600\":\"rgb(203,24,29)\",\"400 - 800\":\"rgb(252,187,161)\",\"800 - 1,200\":\"rgb(251,106,74)\"},\"legendOpen\":false}},\"gridData\":{\"x\":0,\"y\":84,\"w\":48,\"h\":21,\"i\":\"5\"},\"id\":\"429c0940-fce6-11e8-a156-87bcaf41506e\",\"panelIndex\":\"5\",\"title\":\"Unique User Activity by Day\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"embeddableConfig\":{\"vis\": [...]
-      "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}",
-      "version": 1,
-      "timeRestore": false,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"UserID Search\",\"disabled\":true,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"userId\",\"negate\":false,\"params\":{\"query\":\"nobody\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"nobody\"},\"query\":{\"match\":{\"userId\":{\"query\":\"nobody\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Host Search\",\"disabled\":true,\"in [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.8.2/Saved Objects/Apache Flagon Page Usage Dashboard.json b/docker/kibana/6.8.2/Saved Objects/Apache Flagon Page Usage Dashboard.json
deleted file mode 100644
index f66ec8c..0000000
--- a/docker/kibana/6.8.2/Saved Objects/Apache Flagon Page Usage Dashboard.json	
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "_id": "3f02bf70-12eb-11e9-a1e0-631cf5fb9335",
-    "_type": "dashboard",
-    "_source": {
-      "title": "Apache Flagon Page Usage Dashboard",
-      "hits": 0,
-      "description": "Abstracts Multi-User Interaction with Single Pages/Apps. Ideal for script-tag, page-level UserALE.js deployments.",
-      "panelsJSON": "[{\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":32,\"x\":16,\"y\":0},\"id\":\"f7ca4560-be7c-11e7-8adf-fd0a12531eca\",\"panelIndex\":\"2\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 400\":\"rgb(255,245,240)\",\"1,200 - 1,600\":\"rgb(203,24,29)\",\"400 - 800\":\"rgb(252,187,161)\",\"800 - 1,200\":\"rgb(251,106,74)\"},\"legendOpen\":false}},\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":20,\"x\":12,\"y\":15},\"id\":\" [...]
-      "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}",
-      "version": 1,
-      "timeRestore": false,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"UserID Search\",\"disabled\":true,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"userId\",\"negate\":false,\"params\":{\"query\":\"nobody\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"nobody\"},\"query\":{\"match\":{\"userId\":{\"query\":\"nobody\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Host Search\",\"disabled\":true,\"in [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.8.2/Saved Objects/Apache Flagon User Access Dashboard.json b/docker/kibana/6.8.2/Saved Objects/Apache Flagon User Access Dashboard.json
deleted file mode 100644
index 68b74bd..0000000
--- a/docker/kibana/6.8.2/Saved Objects/Apache Flagon User Access Dashboard.json	
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "_id": "ab9f1f90-fce6-11e8-a156-87bcaf41506e",
-    "_type": "dashboard",
-    "_source": {
-      "title": "Apache Flagon User Access Dashboard",
-      "hits": 0,
-      "description": "Abstracts Multi-User Utilization of IT Assets (and Web Usage). Ideal for UserALE.js Web Extension deployments.",
-      "panelsJSON": "[{\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":32,\"x\":16,\"y\":0},\"id\":\"f7ca4560-be7c-11e7-8adf-fd0a12531eca\",\"panelIndex\":\"2\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"embeddableConfig\":{\"spy\":null},\"gridData\":{\"h\":15,\"i\":\"4\",\"w\":16,\"x\":0,\"y\":0},\"id\":\"e36b1f40-be7c-11e7-8adf-fd0a12531eca\",\"panelIndex\":\"4\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":36,\"x\":12,\"y\":15},\"id\": [...]
-      "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}",
-      "version": 1,
-      "timeRestore": false,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"UserID Search\",\"disabled\":true,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"userId\",\"negate\":false,\"params\":{\"query\":\"nobody\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"nobody\"},\"query\":{\"match\":{\"userId\":{\"query\":\"nobody\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Host Search\",\"disabled\":true,\"in [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.8.2/Saved Objects/Apache Flagon Visualizations.json b/docker/kibana/6.8.2/Saved Objects/Apache Flagon Visualizations.json
deleted file mode 100644
index d7781e2..0000000
--- a/docker/kibana/6.8.2/Saved Objects/Apache Flagon Visualizations.json	
+++ /dev/null
@@ -1,427 +0,0 @@
-[
-  {
-    "_id": "d5a95ce0-06e3-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Page Activity By Day",
-      "visState": "{\"title\":\"Page Activity By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\" [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 125\":\"rgb(255,245,240)\",\"125 - 250\":\"rgb(252,187,161)\",\"250 - 375\":\"rgb(251,106,74)\",\"375 - 500\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "33e09c60-2ff2-11e9-be20-a737e788a0aa",
-    "_type": "visualization",
-    "_source": {
-      "title": "Funnel",
-      "visState": "{\"title\":\"Funnel\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true, [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "887fec40-1886-11e9-bdac-e790c2bff4d4",
-    "_type": "visualization",
-    "_source": {
-      "title": "A/B Test",
-      "visState": "{\"title\":\"A/B Test\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"HTML Tags\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "e36b1f40-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Total Number of Logs",
-      "visState": "{\"title\":\"Total Number of Logs\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Total number of logs\"}}],\"listeners\":{}}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "2bf40010-be7d-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Events by Targets",
-      "visState": "{\"title\":\"Events by Targets\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"HTML Tags\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "64045a30-fce4-11e8-a156-87bcaf41506e",
-    "_type": "visualization",
-    "_source": {
-      "title": "Total Logs by Unique Hosts",
-      "visState": "{\"title\":\"Total Logs by Unique Hosts\",\"type\":\"horizontal_bar\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"legendPosition\":\"righ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "f7c690a0-12ef-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top UI Elements Used",
-      "visState": "{\"title\":\"Top UI Elements Used\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Element Interactions\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "ba30fd80-12ee-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of User Events",
-      "visState": "{\"title\":\"Number of User Events\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"f [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "20b291b0-12f2-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Most Active Users by Host",
-      "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Number of User Events\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Host\",\"field\":\"host\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"_term\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTi [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "429c0940-fce6-11e8-a156-87bcaf41506e",
-    "_type": "visualization",
-    "_source": {
-      "title": "Host Activity By Day",
-      "visState": "{\"title\":\"Host Activity By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\" [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 500\":\"rgb(255,245,240)\",\"500 - 1,000\":\"rgb(252,187,161)\",\"1,000 - 1,500\":\"rgb(251,106,74)\",\"1,500 - 2,000\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "bcd7c950-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Event Types",
-      "visState": "{\"title\":\"Top Event Types\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Top Event Types\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"type\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Event types\"}}],\"lis [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "bf327a20-12f3-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Target UI Element Cloud",
-      "visState": "{\"title\":\"Top Target UI Element Cloud\",\"type\":\"tagcloud\",\"params\":{\"scale\":\"linear\",\"orientation\":\"single\",\"minFontSize\":8,\"maxFontSize\":29,\"hideLabel\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Count of User Events\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"target\",\"otherBucket\":false,\"otherBucketLabel\":\"Ot [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "e1b6c290-06e1-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Pages by Activity",
-      "visState": "{\"title\":\"Top Pages by Activity\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Top Event Types\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"fie [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":\"*\",\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "f7ca4560-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Time Series",
-      "visState": "{\"title\":\"Time Series\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(*)\",\"interval\":\"auto\"},\"aggs\":[],\"listeners\":{}}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "36a0eb90-2cd6-11e9-9b9a-95b7b006b436",
-    "_type": "visualization",
-    "_source": {
-      "title": "Time-Series Unique Hosts",
-      "visState": "{\"title\":\"Time-Series Unique Hosts\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(metric=cardinality:host).label('Unique Users (Hosts)')\",\"interval\":\"auto\"},\"aggs\":[]}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "28070240-2d12-11e9-9b9a-95b7b006b436",
-    "_type": "visualization",
-    "_source": {
-      "title": "Activity by SessionID",
-      "visState": "{\"type\":\"timelion\",\"title\":\"Activity by SessionID\",\"params\":{\"expression\":\".es(*,split=sessionID:10)\",\"interval\":\"auto\"}}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "5eeda1e0-06e5-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of Unique Pages Visited",
-      "visState": "{\"title\":\"Number of Unique Pages Visited\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\" [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "822808b0-2d0c-11e9-9b9a-95b7b006b436",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Web Pages by Unique Visitors",
-      "visState": "{\"title\":\"Top Web Pages by Unique Visitors\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"host\",\"customLabel\":\"Unique Visitors\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket [...]
-      "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "d1ba2560-2d03-11e9-9b9a-95b7b006b436",
-    "_type": "visualization",
-    "_source": {
-      "title": "Average Number of Events per Unique Users (Hosts)",
-      "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customBucket\":{\"enabled\":true,\"id\":\"1-bucket\",\"params\":{\"field\":\"host\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderAgg\":{\"enabled\":true,\"id\":\"1-bucket-orderAgg\",\"params\":{},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!median\",\"!std_dev\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\",\"!avg_bucket\",\"!max_bucket [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "b7324e60-12ec-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top URL Visits By Day",
-      "visState": "{\"title\":\"Top URL Visits By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\ [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 400\":\"rgb(255,245,240)\",\"400 - 800\":\"rgb(252,187,161)\",\"800 - 1,200\":\"rgb(251,106,74)\",\"1,200 - 1,600\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "bd56f810-a4da-11e9-baf2-196230c538eb",
-    "_type": "visualization",
-    "_source": {
-      "title": "Average Number of Events per Unique Users (userId)",
-      "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customBucket\":{\"enabled\":true,\"id\":\"1-bucket\",\"params\":{\"field\":\"userId\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderAgg\":{\"enabled\":true,\"id\":\"1-bucket-orderAgg\",\"params\":{},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!median\",\"!std_dev\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\",\"!avg_bucket\",\"!max_buck [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "28b7ad70-a4db-11e9-baf2-196230c538eb",
-    "_type": "visualization",
-    "_source": {
-      "title": "Most Active Users by userId",
-      "visState": "{\"title\":\"Most Active Users by userId\",\"type\":\"horizontal_bar\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"legendPosition\":\"rig [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "5b467330-06e2-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of Unique Users (userId)",
-      "visState": "{\"title\":\"Number of Unique Users (userId)\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "a712e550-a4da-11e9-baf2-196230c538eb",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of Unique Users (host)",
-      "visState": "{\"title\":\"Number of Unique Users (host)\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\": [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "51622390-a4db-11e9-baf2-196230c538eb",
-    "_type": "visualization",
-    "_source": {
-      "title": "Time-Series Unique Users (userId)",
-      "visState": "{\"title\":\"Time-Series Unique Users (userId)\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(split=userId:5,metric=cardinality:userId)\",\"interval\":\"auto\"},\"aggs\":[]}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.8.2/Saved Objects/Drill-Down Search.json b/docker/kibana/6.8.2/Saved Objects/Drill-Down Search.json
deleted file mode 100644
index 749609b..0000000
--- a/docker/kibana/6.8.2/Saved Objects/Drill-Down Search.json	
+++ /dev/null
@@ -1,22 +0,0 @@
-[
-  {
-    "_id": "67105880-06e6-11e9-8c58-f38cfff498f6",
-    "_type": "search",
-    "_source": {
-      "title": "Drill-Down Search",
-      "description": "",
-      "hits": 0,
-      "columns": [
-        "_source"
-      ],
-      "sort": [
-        "clientTime",
-        "desc"
-      ],
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"URL Search\",\"disabled\":false,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"pageUrl\",\"negate\":false,\"params\":{\"query\":\"http://senssoft.incubator.apache.org/\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"http://sensso [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/6.8.2/config/kibana.yml b/docker/kibana/6.8.2/config/kibana.yml
deleted file mode 100644
index cc93fed..0000000
--- a/docker/kibana/6.8.2/config/kibana.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-server.name: kibana
-server.host: "0"
-elasticsearch.url: http://localhost:9200
diff --git a/docker/kibana/8.11.3/Dockerfile b/docker/kibana/8.11.3/Dockerfile
deleted file mode 100644
index 1032f5e..0000000
--- a/docker/kibana/8.11.3/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/kibana/kibana:8.11.3
-
-MAINTAINER Joshua Poore <po...@apache.org>
-
-EXPOSE 5601
diff --git a/docker/kibana/8.11.3/Saved Objects/Apache Flagon Business Analytics Dashboard.ndjson b/docker/kibana/8.11.3/Saved Objects/Apache Flagon Business Analytics Dashboard.ndjson
deleted file mode 100644
index bd56e2d..0000000
--- a/docker/kibana/8.11.3/Saved Objects/Apache Flagon Business Analytics Dashboard.ndjson	
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "_id": "90b264d0-2cd4-11e9-9b9a-95b7b006b436",
-    "_type": "dashboard",
-    "_source": {
-      "title": "Apache Flagon Business Analytics Dashboard",
-      "hits": 0,
-      "description": "Abstracts Multi-User Interaction with Single Pages/Apps",
-      "panelsJSON": "[{\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 400\":\"rgb(255,245,240)\",\"1,200 - 1,600\":\"rgb(203,24,29)\",\"400 - 800\":\"rgb(252,187,161)\",\"800 - 1,200\":\"rgb(251,106,74)\"},\"legendOpen\":false}},\"gridData\":{\"x\":0,\"y\":84,\"w\":48,\"h\":21,\"i\":\"5\"},\"id\":\"429c0940-fce6-11e8-a156-87bcaf41506e\",\"panelIndex\":\"5\",\"title\":\"Unique User Activity by Day\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"embeddableConfig\":{\"vis\": [...]
-      "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}",
-      "version": 1,
-      "timeRestore": false,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"UserID Search\",\"disabled\":true,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"userId\",\"negate\":false,\"params\":{\"query\":\"nobody\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"nobody\"},\"query\":{\"match\":{\"userId\":{\"query\":\"nobody\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Host Search\",\"disabled\":true,\"in [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/8.11.3/Saved Objects/Apache Flagon Page Usage Dashboard.ndjson b/docker/kibana/8.11.3/Saved Objects/Apache Flagon Page Usage Dashboard.ndjson
deleted file mode 100644
index f66ec8c..0000000
--- a/docker/kibana/8.11.3/Saved Objects/Apache Flagon Page Usage Dashboard.ndjson	
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "_id": "3f02bf70-12eb-11e9-a1e0-631cf5fb9335",
-    "_type": "dashboard",
-    "_source": {
-      "title": "Apache Flagon Page Usage Dashboard",
-      "hits": 0,
-      "description": "Abstracts Multi-User Interaction with Single Pages/Apps. Ideal for script-tag, page-level UserALE.js deployments.",
-      "panelsJSON": "[{\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":32,\"x\":16,\"y\":0},\"id\":\"f7ca4560-be7c-11e7-8adf-fd0a12531eca\",\"panelIndex\":\"2\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 400\":\"rgb(255,245,240)\",\"1,200 - 1,600\":\"rgb(203,24,29)\",\"400 - 800\":\"rgb(252,187,161)\",\"800 - 1,200\":\"rgb(251,106,74)\"},\"legendOpen\":false}},\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":20,\"x\":12,\"y\":15},\"id\":\" [...]
-      "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}",
-      "version": 1,
-      "timeRestore": false,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"UserID Search\",\"disabled\":true,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"userId\",\"negate\":false,\"params\":{\"query\":\"nobody\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"nobody\"},\"query\":{\"match\":{\"userId\":{\"query\":\"nobody\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Host Search\",\"disabled\":true,\"in [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/8.11.3/Saved Objects/Apache Flagon User Access Dashboard.ndjson b/docker/kibana/8.11.3/Saved Objects/Apache Flagon User Access Dashboard.ndjson
deleted file mode 100644
index 68b74bd..0000000
--- a/docker/kibana/8.11.3/Saved Objects/Apache Flagon User Access Dashboard.ndjson	
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-  {
-    "_id": "ab9f1f90-fce6-11e8-a156-87bcaf41506e",
-    "_type": "dashboard",
-    "_source": {
-      "title": "Apache Flagon User Access Dashboard",
-      "hits": 0,
-      "description": "Abstracts Multi-User Utilization of IT Assets (and Web Usage). Ideal for UserALE.js Web Extension deployments.",
-      "panelsJSON": "[{\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":32,\"x\":16,\"y\":0},\"id\":\"f7ca4560-be7c-11e7-8adf-fd0a12531eca\",\"panelIndex\":\"2\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"embeddableConfig\":{\"spy\":null},\"gridData\":{\"h\":15,\"i\":\"4\",\"w\":16,\"x\":0,\"y\":0},\"id\":\"e36b1f40-be7c-11e7-8adf-fd0a12531eca\",\"panelIndex\":\"4\",\"type\":\"visualization\",\"version\":\"6.5.4\"},{\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":36,\"x\":12,\"y\":15},\"id\": [...]
-      "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}",
-      "version": 1,
-      "timeRestore": false,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"UserID Search\",\"disabled\":true,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"userId\",\"negate\":false,\"params\":{\"query\":\"nobody\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"nobody\"},\"query\":{\"match\":{\"userId\":{\"query\":\"nobody\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"Host Search\",\"disabled\":true,\"in [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/8.11.3/Saved Objects/Apache Flagon Visualizations.ndjson b/docker/kibana/8.11.3/Saved Objects/Apache Flagon Visualizations.ndjson
deleted file mode 100644
index d7781e2..0000000
--- a/docker/kibana/8.11.3/Saved Objects/Apache Flagon Visualizations.ndjson	
+++ /dev/null
@@ -1,427 +0,0 @@
-[
-  {
-    "_id": "d5a95ce0-06e3-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Page Activity By Day",
-      "visState": "{\"title\":\"Page Activity By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\" [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 125\":\"rgb(255,245,240)\",\"125 - 250\":\"rgb(252,187,161)\",\"250 - 375\":\"rgb(251,106,74)\",\"375 - 500\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "33e09c60-2ff2-11e9-be20-a737e788a0aa",
-    "_type": "visualization",
-    "_source": {
-      "title": "Funnel",
-      "visState": "{\"title\":\"Funnel\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true, [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "887fec40-1886-11e9-bdac-e790c2bff4d4",
-    "_type": "visualization",
-    "_source": {
-      "title": "A/B Test",
-      "visState": "{\"title\":\"A/B Test\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"HTML Tags\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "e36b1f40-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Total Number of Logs",
-      "visState": "{\"title\":\"Total Number of Logs\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Total number of logs\"}}],\"listeners\":{}}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "2bf40010-be7d-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Events by Targets",
-      "visState": "{\"title\":\"Events by Targets\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"HTML Tags\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "64045a30-fce4-11e8-a156-87bcaf41506e",
-    "_type": "visualization",
-    "_source": {
-      "title": "Total Logs by Unique Hosts",
-      "visState": "{\"title\":\"Total Logs by Unique Hosts\",\"type\":\"horizontal_bar\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"legendPosition\":\"righ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "f7c690a0-12ef-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top UI Elements Used",
-      "visState": "{\"title\":\"Top UI Elements Used\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Element Interactions\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "ba30fd80-12ee-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of User Events",
-      "visState": "{\"title\":\"Number of User Events\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"f [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "20b291b0-12f2-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Most Active Users by Host",
-      "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Number of User Events\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Host\",\"field\":\"host\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"_term\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTi [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "429c0940-fce6-11e8-a156-87bcaf41506e",
-    "_type": "visualization",
-    "_source": {
-      "title": "Host Activity By Day",
-      "visState": "{\"title\":\"Host Activity By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\" [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 500\":\"rgb(255,245,240)\",\"500 - 1,000\":\"rgb(252,187,161)\",\"1,000 - 1,500\":\"rgb(251,106,74)\",\"1,500 - 2,000\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "bcd7c950-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Event Types",
-      "visState": "{\"title\":\"Top Event Types\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Top Event Types\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"type\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Event types\"}}],\"lis [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "bf327a20-12f3-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Target UI Element Cloud",
-      "visState": "{\"title\":\"Top Target UI Element Cloud\",\"type\":\"tagcloud\",\"params\":{\"scale\":\"linear\",\"orientation\":\"single\",\"minFontSize\":8,\"maxFontSize\":29,\"hideLabel\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Count of User Events\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"target\",\"otherBucket\":false,\"otherBucketLabel\":\"Ot [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "e1b6c290-06e1-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Pages by Activity",
-      "visState": "{\"title\":\"Top Pages by Activity\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Top Event Types\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"fie [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":\"*\",\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "f7ca4560-be7c-11e7-8adf-fd0a12531eca",
-    "_type": "visualization",
-    "_source": {
-      "title": "Time Series",
-      "visState": "{\"title\":\"Time Series\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(*)\",\"interval\":\"auto\"},\"aggs\":[],\"listeners\":{}}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "36a0eb90-2cd6-11e9-9b9a-95b7b006b436",
-    "_type": "visualization",
-    "_source": {
-      "title": "Time-Series Unique Hosts",
-      "visState": "{\"title\":\"Time-Series Unique Hosts\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(metric=cardinality:host).label('Unique Users (Hosts)')\",\"interval\":\"auto\"},\"aggs\":[]}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "28070240-2d12-11e9-9b9a-95b7b006b436",
-    "_type": "visualization",
-    "_source": {
-      "title": "Activity by SessionID",
-      "visState": "{\"type\":\"timelion\",\"title\":\"Activity by SessionID\",\"params\":{\"expression\":\".es(*,split=sessionID:10)\",\"interval\":\"auto\"}}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "5eeda1e0-06e5-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of Unique Pages Visited",
-      "visState": "{\"title\":\"Number of Unique Pages Visited\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\" [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "822808b0-2d0c-11e9-9b9a-95b7b006b436",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top Web Pages by Unique Visitors",
-      "visState": "{\"title\":\"Top Web Pages by Unique Visitors\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"host\",\"customLabel\":\"Unique Visitors\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket [...]
-      "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "d1ba2560-2d03-11e9-9b9a-95b7b006b436",
-    "_type": "visualization",
-    "_source": {
-      "title": "Average Number of Events per Unique Users (Hosts)",
-      "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customBucket\":{\"enabled\":true,\"id\":\"1-bucket\",\"params\":{\"field\":\"host\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderAgg\":{\"enabled\":true,\"id\":\"1-bucket-orderAgg\",\"params\":{},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!median\",\"!std_dev\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\",\"!avg_bucket\",\"!max_bucket [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "b7324e60-12ec-11e9-a1e0-631cf5fb9335",
-    "_type": "visualization",
-    "_source": {
-      "title": "Top URL Visits By Day",
-      "visState": "{\"title\":\"Top URL Visits By Day\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Reds\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\ [...]
-      "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 400\":\"rgb(255,245,240)\",\"400 - 800\":\"rgb(252,187,161)\",\"800 - 1,200\":\"rgb(251,106,74)\",\"1,200 - 1,600\":\"rgb(203,24,29)\"}}}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "bd56f810-a4da-11e9-baf2-196230c538eb",
-    "_type": "visualization",
-    "_source": {
-      "title": "Average Number of Events per Unique Users (userId)",
-      "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customBucket\":{\"enabled\":true,\"id\":\"1-bucket\",\"params\":{\"field\":\"userId\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderAgg\":{\"enabled\":true,\"id\":\"1-bucket-orderAgg\",\"params\":{},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!median\",\"!std_dev\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\",\"!avg_bucket\",\"!max_buck [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "28b7ad70-a4db-11e9-baf2-196230c538eb",
-    "_type": "visualization",
-    "_source": {
-      "title": "Most Active Users by userId",
-      "visState": "{\"title\":\"Most Active Users by userId\",\"type\":\"horizontal_bar\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"legendPosition\":\"rig [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "5b467330-06e2-11e9-8c58-f38cfff498f6",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of Unique Users (userId)",
-      "visState": "{\"title\":\"Number of Unique Users (userId)\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\ [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "a712e550-a4da-11e9-baf2-196230c538eb",
-    "_type": "visualization",
-    "_source": {
-      "title": "Number of Unique Users (host)",
-      "visState": "{\"title\":\"Number of Unique Users (host)\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60,\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\": [...]
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"7f1f6a80-a4d7-11e9-baf2-196230c538eb\",\"query\":{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  },
-  {
-    "_id": "51622390-a4db-11e9-baf2-196230c538eb",
-    "_type": "visualization",
-    "_source": {
-      "title": "Time-Series Unique Users (userId)",
-      "visState": "{\"title\":\"Time-Series Unique Users (userId)\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(split=userId:5,metric=cardinality:userId)\",\"interval\":\"auto\"},\"aggs\":[]}",
-      "uiStateJSON": "{}",
-      "description": "",
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}"
-      }
-    },
-    "_meta": {
-      "savedObjectVersion": 2
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/8.11.3/Saved Objects/Drill-Down Search.ndjson b/docker/kibana/8.11.3/Saved Objects/Drill-Down Search.ndjson
deleted file mode 100644
index 749609b..0000000
--- a/docker/kibana/8.11.3/Saved Objects/Drill-Down Search.ndjson	
+++ /dev/null
@@ -1,22 +0,0 @@
-[
-  {
-    "_id": "67105880-06e6-11e9-8c58-f38cfff498f6",
-    "_type": "search",
-    "_source": {
-      "title": "Drill-Down Search",
-      "description": "",
-      "hits": 0,
-      "columns": [
-        "_source"
-      ],
-      "sort": [
-        "clientTime",
-        "desc"
-      ],
-      "version": 1,
-      "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"URL Search\",\"disabled\":false,\"index\":\"bdce0520-06df-11e9-8c58-f38cfff498f6\",\"key\":\"pageUrl\",\"negate\":false,\"params\":{\"query\":\"http://senssoft.incubator.apache.org/\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"http://sensso [...]
-      }
-    }
-  }
-]
\ No newline at end of file
diff --git a/docker/kibana/8.11.3/config/kibana.yml b/docker/kibana/8.11.3/config/kibana.yml
deleted file mode 100644
index cc93fed..0000000
--- a/docker/kibana/8.11.3/config/kibana.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-server.name: kibana
-server.host: "0"
-elasticsearch.url: http://localhost:9200
diff --git a/docker/kibana/Dockerfile b/docker/kibana/Dockerfile
new file mode 100644
index 0000000..9a075be
--- /dev/null
+++ b/docker/kibana/Dockerfile
@@ -0,0 +1,7 @@
+ARG ELASTIC_VERSION
+
+# https://www.docker.elastic.co/
+FROM docker.elastic.co/kibana/kibana:${ELASTIC_VERSION}
+
+# Add your kibana plugins setup here
+# Example: RUN kibana-plugin install <name|url>
diff --git a/docker/kibana/config/kibana.yml b/docker/kibana/config/kibana.yml
new file mode 100644
index 0000000..ef3f024
--- /dev/null
+++ b/docker/kibana/config/kibana.yml
@@ -0,0 +1,99 @@
+---
+## Default Kibana configuration from Kibana base image.
+## https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/templates/kibana_yml.template.ts
+#
+server.name: kibana
+server.host: 0.0.0.0
+elasticsearch.hosts: [ http://elasticsearch:9200 ]
+
+monitoring.ui.container.elasticsearch.enabled: true
+monitoring.ui.container.logstash.enabled: true
+
+## X-Pack security credentials
+#
+elasticsearch.username: kibana_system
+elasticsearch.password: ${KIBANA_SYSTEM_PASSWORD}
+
+## Encryption keys (optional but highly recommended)
+##
+## Generate with either
+##  $ docker container run --rm docker.elastic.co/kibana/kibana:8.6.2 bin/kibana-encryption-keys generate
+##  $ openssl rand -hex 32
+##
+## https://www.elastic.co/guide/en/kibana/current/using-kibana-with-security.html
+## https://www.elastic.co/guide/en/kibana/current/kibana-encryption-keys.html
+#
+#xpack.security.encryptionKey:
+#xpack.encryptedSavedObjects.encryptionKey:
+#xpack.reporting.encryptionKey:
+
+## Fleet
+## https://www.elastic.co/guide/en/kibana/current/fleet-settings-kb.html
+#
+xpack.fleet.agents.fleet_server.hosts: [ http://fleet-server:8220 ]
+
+xpack.fleet.outputs:
+  - id: fleet-default-output
+    name: default
+    type: elasticsearch
+    hosts: [ http://elasticsearch:9200 ]
+    is_default: true
+    is_default_monitoring: true
+
+xpack.fleet.packages:
+  - name: fleet_server
+    version: latest
+  - name: system
+    version: latest
+  - name: elastic_agent
+    version: latest
+  - name: docker
+    version: latest
+  - name: apm
+    version: latest
+
+xpack.fleet.agentPolicies:
+  - name: Fleet Server Policy
+    id: fleet-server-policy
+    description: Static agent policy for Fleet Server
+    monitoring_enabled:
+      - logs
+      - metrics
+    package_policies:
+      - name: fleet_server-1
+        package:
+          name: fleet_server
+      - name: system-1
+        package:
+          name: system
+      - name: elastic_agent-1
+        package:
+          name: elastic_agent
+      - name: docker-1
+        package:
+          name: docker
+  - name: Agent Policy APM Server
+    id: agent-policy-apm-server
+    description: Static agent policy for the APM Server integration
+    monitoring_enabled:
+      - logs
+      - metrics
+    package_policies:
+      - name: system-1
+        package:
+          name: system
+      - name: elastic_agent-1
+        package:
+          name: elastic_agent
+      - name: apm-1
+        package:
+          name: apm
+        # See the APM package manifest for a list of possible inputs.
+        # https://github.com/elastic/apm-server/blob/v8.5.0/apmpackage/apm/manifest.yml#L41-L168
+        inputs:
+          - type: apm
+            vars:
+              - name: host
+                value: 0.0.0.0:8200
+              - name: url
+                value: http://apm-server:8200
diff --git a/docker/logstash/.dockerignore b/docker/logstash/.dockerignore
new file mode 100644
index 0000000..37eef9d
--- /dev/null
+++ b/docker/logstash/.dockerignore
@@ -0,0 +1,6 @@
+# Ignore Docker build files
+Dockerfile
+.dockerignore
+
+# Ignore OS artifacts
+**/.DS_Store
diff --git a/docker/logstash/5.6.3/Dockerfile b/docker/logstash/5.6.3/Dockerfile
deleted file mode 100644
index 0cd9cd7..0000000
--- a/docker/logstash/5.6.3/Dockerfile
+++ /dev/null
@@ -1,31 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/logstash/logstash:5.6.3
-MAINTAINER Michelle Beard <ms...@apache.org>
-
-RUN mkdir /usr/share/logstash/templates
-RUN rm -f /usr/share/logstash/pipeline/logstash.conf
-
-RUN logstash-plugin remove x-pack
-
-# Known issue: https://github.com/elastic/logstash-docker/issues/45
-RUN sed -i '/xpack/d' /usr/share/logstash/config/logstash.yml
-
-# Copy Configuration files over
-COPY config/logstash-userale.conf /usr/share/logstash/pipeline/logstash-userale.conf
-COPY templates/userale.json /usr/share/logstash/templates/userale.json
-
-EXPOSE 8100
\ No newline at end of file
diff --git a/docker/logstash/5.6.3/config/logstash-userale.conf b/docker/logstash/5.6.3/config/logstash-userale.conf
deleted file mode 100644
index 4af6ee7..0000000
--- a/docker/logstash/5.6.3/config/logstash-userale.conf
+++ /dev/null
@@ -1,53 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-input {
-	http {
-		codec => "json"
-		port => 8100
-		response_headers => { 
-			"Access-Control-Allow-Origin" => "*" 
-            "Access-Control-Allow-Headers" => "Origin, X-Requested-With, Content-Type, Accept"
-        }
-	}
-}
-
-## Add your filters / logstash plugins configuration here
-filter {
-	mutate {
-		remove_field => [ "message", "@version", "headers"]
-	}
-
-	grok {
-    	match => [ "useraleVersion", "(?<major_ver>\d+).(?<minor_ver>\d+)(.(?<patch_ver>\d+))?" ]
-    	match => [ "toolVersion", "(?<tool_major_ver>\d+).(?<tool_minor_ver>\d+)(.(?<tool_patch_ver>\d+))?" ]
-  }
-}
-
-output {
-	# Output data to Elasticsearch instance
-	elasticsearch {
-		hosts => "${ELASTICSEARCH_URL}"
-		index => "userale"
-		document_type => "logs"
-		manage_template => true
-		template_overwrite => true
-		template => "/usr/share/logstash/templates/userale.json"
-		template_name => "userale"
-	}
-
-	# Debug
-	# stdout { codec => rubydebug }
-}
diff --git a/docker/logstash/5.6.3/templates/userale.json b/docker/logstash/5.6.3/templates/userale.json
deleted file mode 100644
index c1bdbb1..0000000
--- a/docker/logstash/5.6.3/templates/userale.json
+++ /dev/null
@@ -1,150 +0,0 @@
-{
-    "template": "userale",
-    "order": 1,
-    "settings":
-    {
-        "number_of_shards": 1,
-        "number_of_replicas": 0,
-        "index.refresh_interval": "5s",
-        "analysis": {
-            "analyzer": {
-                "my_analyzer": {
-                    "tokenizer": "my_tokenizer"
-                }
-            },
-            "tokenizer": {
-                "my_tokenizer": {
-                    "type": "path_hierarchy"
-                }
-            }
-        }
-    },
-    "mappings":
-    {
-        "_default_":
-        {
-            "_all":
-            {
-                "enabled": false
-            }
-        },
-        "logs":
-        {
-        "dynamic_templates": [
-                {
-                  "strings_as_keywords": {
-                    "match_mapping_type": "string",
-                    "mapping": {
-                      "type": "keyword"
-                    }
-                  }
-                }
-            ],
-            "dynamic": "true",
-            "properties":
-            {
-                "userAction":
-                {
-                    "type": "boolean"
-                },
-                "clientTime":
-                {
-                    "type": "date",
-                    "format": "strict_date_optional_time||epoch_millis"
-                },
-                "count":
-                {
-                    "type": "integer"
-                },
-                "targetChange": 
-                {
-                    "type": "boolean"
-                },
-                "typeChange": 
-                {
-                    "type": "boolean"
-                },
-                "details":
-                {
-                    "properties":
-                    {
-                        "alt":
-                        {
-                            "type": "boolean"
-                        },
-                        "clicks":
-                        {
-                            "type": "integer"
-                        },
-                        "ctrl": 
-                        {
-                            "type": "boolean"
-                        },
-                        "meta": 
-                        {
-                            "type": "boolean"
-                        },
-                        "shift": 
-                        {
-                            "type": "boolean"
-                        },
-                        "window":
-                        {
-                            "type": "boolean"
-                        },
-                        "x":
-                        {
-                            "type": "integer"
-                        },
-                        "y":
-                        {
-                            "type": "integer"
-                        },
-                        "z":
-                        {
-                            "type": "integer"
-                        }
-                    }
-                },
-                "location":
-                {
-                    "properties":
-                    {
-                        "x":
-                        {
-                            "type": "integer"
-                        },
-                        "y":
-                        {
-                            "type": "integer"
-                        }
-                    }
-                },
-                "major_ver":
-                {
-                    "type": "integer"
-                },
-                "minor_ver":
-                {
-                    "type": "integer"
-                },
-                "patch_ver":
-                {
-                    "type": "integer"
-                },
-                "tool_major_ver":
-                {
-                    "type": "integer"
-                },
-                "tool_minor_ver":
-                {
-                    "type": "integer"
-                },
-                "tool_patch_ver":
-                {
-                    "type": "integer"
-                }
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/docker/logstash/6.2.2/Dockerfile b/docker/logstash/6.2.2/Dockerfile
deleted file mode 100644
index d041e48..0000000
--- a/docker/logstash/6.2.2/Dockerfile
+++ /dev/null
@@ -1,31 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/logstash/logstash-oss:6.2.2
-MAINTAINER Michelle Beard <ms...@apache.org>
-
-# Ensure default logstash configuration is removed
-RUN rm -f /usr/share/logstash/pipeline/logstash.conf
-
-# Copy Pipeline files over
-ADD pipeline/ /usr/share/logstash/pipeline/
-
-# Copy templates over
-RUN mkdir /usr/share/logstash/templates
-COPY templates/userale.json /usr/share/logstash/templates/userale.json
-
-EXPOSE 8100
-
-CMD ["logstash"]
\ No newline at end of file
diff --git a/docker/logstash/6.2.2/pipeline/logstash-userale.conf b/docker/logstash/6.2.2/pipeline/logstash-userale.conf
deleted file mode 100644
index 8b4313f..0000000
--- a/docker/logstash/6.2.2/pipeline/logstash-userale.conf
+++ /dev/null
@@ -1,52 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-input {
-	http {
-		codec => "json"
-		port => 8100
-		response_headers => { 
-			"Access-Control-Allow-Origin" => "*" 
-            "Access-Control-Allow-Headers" => "Origin, X-Requested-With, Content-Type, Accept"
-        }
-	}
-}
-
-## Add your filters / logstash plugins configuration here
-filter {
-	mutate {
-		remove_field => [ "message", "@version", "headers"]
-	}
-
-	grok {
-    	match => [ "useraleVersion", "(?<major_ver>\d+).(?<minor_ver>\d+)(.(?<patch_ver>\d+))?" ]
-    	match => [ "toolVersion", "(?<tool_major_ver>\d+).(?<tool_minor_ver>\d+)(.(?<tool_patch_ver>\d+))?" ]
-  }
-}
-
-output {
-	# Output data to Elasticsearch instance
-	elasticsearch {
-		hosts => "${ELASTICSEARCH_URL}"
-		index => "userale"
-		manage_template => true
-		template_overwrite => true
-		template => "/usr/share/logstash/templates/userale.json"
-		template_name => "userale"
-	}
-
-	# Debug
-	stdout { codec => rubydebug }
-}
diff --git a/docker/logstash/6.2.2/templates/userale.json b/docker/logstash/6.2.2/templates/userale.json
deleted file mode 100644
index 5aa92d0..0000000
--- a/docker/logstash/6.2.2/templates/userale.json
+++ /dev/null
@@ -1,143 +0,0 @@
-{
-    "index_patterns": "userale",
-    "order": 1,
-    "settings":
-    {
-        "number_of_shards": 1,
-        "number_of_replicas": 0,
-        "index.refresh_interval": "5s",
-        "analysis": {
-            "analyzer": {
-                "my_analyzer": {
-                    "tokenizer": "my_tokenizer"
-                }
-            },
-            "tokenizer": {
-                "my_tokenizer": {
-                    "type": "path_hierarchy"
-                }
-            }
-        }
-    },
-    "mappings":
-    {
-        "doc":
-        {
-        "dynamic_templates": [
-                {
-                  "strings_as_keywords": {
-                    "match_mapping_type": "string",
-                    "mapping": {
-                      "type": "keyword"
-                    }
-                  }
-                }
-            ],
-            "dynamic": "true",
-            "properties":
-            {
-                "userAction":
-                {
-                    "type": "boolean"
-                },
-                "clientTime":
-                {
-                    "type": "date",
-                    "format": "strict_date_optional_time||epoch_millis"
-                },
-                "count":
-                {
-                    "type": "integer"
-                },
-                "targetChange": 
-                {
-                    "type": "boolean"
-                },
-                "typeChange": 
-                {
-                    "type": "boolean"
-                },
-                "details":
-                {
-                    "properties":
-                    {
-                        "alt":
-                        {
-                            "type": "boolean"
-                        },
-                        "clicks":
-                        {
-                            "type": "integer"
-                        },
-                        "ctrl": 
-                        {
-                            "type": "boolean"
-                        },
-                        "meta": 
-                        {
-                            "type": "boolean"
-                        },
-                        "shift": 
-                        {
-                            "type": "boolean"
-                        },
-                        "window":
-                        {
-                            "type": "boolean"
-                        },
-                        "x":
-                        {
-                            "type": "integer"
-                        },
-                        "y":
-                        {
-                            "type": "integer"
-                        },
-                        "z":
-                        {
-                            "type": "integer"
-                        }
-                    }
-                },
-                "location":
-                {
-                    "properties":
-                    {
-                        "x":
-                        {
-                            "type": "integer"
-                        },
-                        "y":
-                        {
-                            "type": "integer"
-                        }
-                    }
-                },
-                "major_ver":
-                {
-                    "type": "integer"
-                },
-                "minor_ver":
-                {
-                    "type": "integer"
-                },
-                "patch_ver":
-                {
-                    "type": "integer"
-                },
-                "tool_major_ver":
-                {
-                    "type": "integer"
-                },
-                "tool_minor_ver":
-                {
-                    "type": "integer"
-                },
-                "tool_patch_ver":
-                {
-                    "type": "integer"
-                }
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/docker/logstash/6.5.4/Dockerfile b/docker/logstash/6.5.4/Dockerfile
deleted file mode 100644
index 876184c..0000000
--- a/docker/logstash/6.5.4/Dockerfile
+++ /dev/null
@@ -1,31 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/logstash/logstash-oss:6.5.4
-MAINTAINER Michelle Beard <ms...@apache.org>
-
-# Ensure default logstash configuration is removed
-RUN rm -f /usr/share/logstash/pipeline/logstash.conf
-
-# Copy Pipeline files over
-ADD pipeline/ /usr/share/logstash/pipeline/
-
-# Copy templates over
-RUN mkdir /usr/share/logstash/templates
-COPY templates/userale.json /usr/share/logstash/templates/userale.json
-
-EXPOSE 8100
-
-CMD ["logstash"]
\ No newline at end of file
diff --git a/docker/logstash/6.5.4/pipeline/logstash-userale.conf b/docker/logstash/6.5.4/pipeline/logstash-userale.conf
deleted file mode 100644
index 8b4313f..0000000
--- a/docker/logstash/6.5.4/pipeline/logstash-userale.conf
+++ /dev/null
@@ -1,52 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-input {
-	http {
-		codec => "json"
-		port => 8100
-		response_headers => { 
-			"Access-Control-Allow-Origin" => "*" 
-            "Access-Control-Allow-Headers" => "Origin, X-Requested-With, Content-Type, Accept"
-        }
-	}
-}
-
-## Add your filters / logstash plugins configuration here
-filter {
-	mutate {
-		remove_field => [ "message", "@version", "headers"]
-	}
-
-	grok {
-    	match => [ "useraleVersion", "(?<major_ver>\d+).(?<minor_ver>\d+)(.(?<patch_ver>\d+))?" ]
-    	match => [ "toolVersion", "(?<tool_major_ver>\d+).(?<tool_minor_ver>\d+)(.(?<tool_patch_ver>\d+))?" ]
-  }
-}
-
-output {
-	# Output data to Elasticsearch instance
-	elasticsearch {
-		hosts => "${ELASTICSEARCH_URL}"
-		index => "userale"
-		manage_template => true
-		template_overwrite => true
-		template => "/usr/share/logstash/templates/userale.json"
-		template_name => "userale"
-	}
-
-	# Debug
-	stdout { codec => rubydebug }
-}
diff --git a/docker/logstash/6.5.4/templates/userale.json b/docker/logstash/6.5.4/templates/userale.json
deleted file mode 100644
index 5aa92d0..0000000
--- a/docker/logstash/6.5.4/templates/userale.json
+++ /dev/null
@@ -1,143 +0,0 @@
-{
-    "index_patterns": "userale",
-    "order": 1,
-    "settings":
-    {
-        "number_of_shards": 1,
-        "number_of_replicas": 0,
-        "index.refresh_interval": "5s",
-        "analysis": {
-            "analyzer": {
-                "my_analyzer": {
-                    "tokenizer": "my_tokenizer"
-                }
-            },
-            "tokenizer": {
-                "my_tokenizer": {
-                    "type": "path_hierarchy"
-                }
-            }
-        }
-    },
-    "mappings":
-    {
-        "doc":
-        {
-        "dynamic_templates": [
-                {
-                  "strings_as_keywords": {
-                    "match_mapping_type": "string",
-                    "mapping": {
-                      "type": "keyword"
-                    }
-                  }
-                }
-            ],
-            "dynamic": "true",
-            "properties":
-            {
-                "userAction":
-                {
-                    "type": "boolean"
-                },
-                "clientTime":
-                {
-                    "type": "date",
-                    "format": "strict_date_optional_time||epoch_millis"
-                },
-                "count":
-                {
-                    "type": "integer"
-                },
-                "targetChange": 
-                {
-                    "type": "boolean"
-                },
-                "typeChange": 
-                {
-                    "type": "boolean"
-                },
-                "details":
-                {
-                    "properties":
-                    {
-                        "alt":
-                        {
-                            "type": "boolean"
-                        },
-                        "clicks":
-                        {
-                            "type": "integer"
-                        },
-                        "ctrl": 
-                        {
-                            "type": "boolean"
-                        },
-                        "meta": 
-                        {
-                            "type": "boolean"
-                        },
-                        "shift": 
-                        {
-                            "type": "boolean"
-                        },
-                        "window":
-                        {
-                            "type": "boolean"
-                        },
-                        "x":
-                        {
-                            "type": "integer"
-                        },
-                        "y":
-                        {
-                            "type": "integer"
-                        },
-                        "z":
-                        {
-                            "type": "integer"
-                        }
-                    }
-                },
-                "location":
-                {
-                    "properties":
-                    {
-                        "x":
-                        {
-                            "type": "integer"
-                        },
-                        "y":
-                        {
-                            "type": "integer"
-                        }
-                    }
-                },
-                "major_ver":
-                {
-                    "type": "integer"
-                },
-                "minor_ver":
-                {
-                    "type": "integer"
-                },
-                "patch_ver":
-                {
-                    "type": "integer"
-                },
-                "tool_major_ver":
-                {
-                    "type": "integer"
-                },
-                "tool_minor_ver":
-                {
-                    "type": "integer"
-                },
-                "tool_patch_ver":
-                {
-                    "type": "integer"
-                }
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/docker/logstash/6.6.2/Dockerfile b/docker/logstash/6.6.2/Dockerfile
deleted file mode 100644
index c733fa5..0000000
--- a/docker/logstash/6.6.2/Dockerfile
+++ /dev/null
@@ -1,31 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/logstash/logstash-oss:6.6.2
-MAINTAINER Joshua Poore <po...@apache.org>
-
-# Ensure default logstash configuration is removed
-RUN rm -f /usr/share/logstash/pipeline/logstash.conf
-
-# Copy Pipeline files over
-ADD pipeline/ /usr/share/logstash/pipeline/
-
-# Copy templates over
-RUN mkdir /usr/share/logstash/templates
-COPY templates/userale.json /usr/share/logstash/templates/userale.json
-
-EXPOSE 8100
-
-CMD ["logstash"]
\ No newline at end of file
diff --git a/docker/logstash/6.6.2/pipeline/logstash-userale.conf b/docker/logstash/6.6.2/pipeline/logstash-userale.conf
deleted file mode 100644
index 8b4313f..0000000
--- a/docker/logstash/6.6.2/pipeline/logstash-userale.conf
+++ /dev/null
@@ -1,52 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-input {
-	http {
-		codec => "json"
-		port => 8100
-		response_headers => { 
-			"Access-Control-Allow-Origin" => "*" 
-            "Access-Control-Allow-Headers" => "Origin, X-Requested-With, Content-Type, Accept"
-        }
-	}
-}
-
-## Add your filters / logstash plugins configuration here
-filter {
-	mutate {
-		remove_field => [ "message", "@version", "headers"]
-	}
-
-	grok {
-    	match => [ "useraleVersion", "(?<major_ver>\d+).(?<minor_ver>\d+)(.(?<patch_ver>\d+))?" ]
-    	match => [ "toolVersion", "(?<tool_major_ver>\d+).(?<tool_minor_ver>\d+)(.(?<tool_patch_ver>\d+))?" ]
-  }
-}
-
-output {
-	# Output data to Elasticsearch instance
-	elasticsearch {
-		hosts => "${ELASTICSEARCH_URL}"
-		index => "userale"
-		manage_template => true
-		template_overwrite => true
-		template => "/usr/share/logstash/templates/userale.json"
-		template_name => "userale"
-	}
-
-	# Debug
-	stdout { codec => rubydebug }
-}
diff --git a/docker/logstash/6.6.2/templates/userale.json b/docker/logstash/6.6.2/templates/userale.json
deleted file mode 100644
index c27b742..0000000
--- a/docker/logstash/6.6.2/templates/userale.json
+++ /dev/null
@@ -1,153 +0,0 @@
-{
-    "index_patterns": "userale",
-    "order": 1,
-    "settings":
-    {
-        "number_of_shards": 1,
-        "number_of_replicas": 0,
-        "index.refresh_interval": "5s",
-        "analysis": {
-            "analyzer": {
-                "my_analyzer": {
-                    "tokenizer": "my_tokenizer"
-                }
-            },
-            "tokenizer": {
-                "my_tokenizer": {
-                    "type": "path_hierarchy"
-                }
-            }
-        }
-    },
-    "mappings":
-    {
-        "doc":
-        {
-        "dynamic_templates": [
-                {
-                  "strings_as_keywords": {
-                    "match_mapping_type": "string",
-                    "mapping": {
-                      "type": "keyword"
-                    }
-                  }
-                }
-            ],
-            "dynamic": "true",
-            "properties":
-            {
-                "userAction":
-                {
-                    "type": "boolean"
-                },
-                "clientTime":
-                {
-                    "type": "date",
-                    "format": "strict_date_optional_time||epoch_millis"
-                },
-                "startTime":
-                {
-                    "type": "date",
-                    "format": "strict_date_optional_time||epoch_millis"
-                },
-                "endTime":
-                {
-                    "type": "date",
-                    "format": "strict_date_optional_time||epoch_millis"
-                },
-                "count":
-                {
-                    "type": "integer"
-                },
-                "targetChange": 
-                {
-                    "type": "boolean"
-                },
-                "typeChange": 
-                {
-                    "type": "boolean"
-                },
-                "details":
-                {
-                    "properties":
-                    {
-                        "alt":
-                        {
-                            "type": "boolean"
-                        },
-                        "clicks":
-                        {
-                            "type": "integer"
-                        },
-                        "ctrl": 
-                        {
-                            "type": "boolean"
-                        },
-                        "meta": 
-                        {
-                            "type": "boolean"
-                        },
-                        "shift": 
-                        {
-                            "type": "boolean"
-                        },
-                        "window":
-                        {
-                            "type": "boolean"
-                        },
-                        "x":
-                        {
-                            "type": "integer"
-                        },
-                        "y":
-                        {
-                            "type": "integer"
-                        },
-                        "z":
-                        {
-                            "type": "integer"
-                        }
-                    }
-                },
-                "location":
-                {
-                    "properties":
-                    {
-                        "x":
-                        {
-                            "type": "integer"
-                        },
-                        "y":
-                        {
-                            "type": "integer"
-                        }
-                    }
-                },
-                "major_ver":
-                {
-                    "type": "integer"
-                },
-                "minor_ver":
-                {
-                    "type": "integer"
-                },
-                "patch_ver":
-                {
-                    "type": "integer"
-                },
-                "tool_major_ver":
-                {
-                    "type": "integer"
-                },
-                "tool_minor_ver":
-                {
-                    "type": "integer"
-                },
-                "tool_patch_ver":
-                {
-                    "type": "integer"
-                }
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/docker/logstash/6.8.2/Dockerfile b/docker/logstash/6.8.2/Dockerfile
deleted file mode 100644
index 6c13621..0000000
--- a/docker/logstash/6.8.2/Dockerfile
+++ /dev/null
@@ -1,31 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/logstash/logstash-oss:6.8.2
-MAINTAINER Joshua Poore <po...@apache.org>
-
-# Ensure default logstash configuration is removed
-RUN rm -f /usr/share/logstash/pipeline/logstash.conf
-
-# Copy Pipeline files over
-ADD pipeline/ /usr/share/logstash/pipeline/
-
-# Copy templates over
-RUN mkdir /usr/share/logstash/templates
-COPY templates/userale.json /usr/share/logstash/templates/userale.json
-
-EXPOSE 8100
-
-CMD ["logstash"]
\ No newline at end of file
diff --git a/docker/logstash/6.8.2/templates/userale.json b/docker/logstash/6.8.2/templates/userale.json
deleted file mode 100644
index c27b742..0000000
--- a/docker/logstash/6.8.2/templates/userale.json
+++ /dev/null
@@ -1,153 +0,0 @@
-{
-    "index_patterns": "userale",
-    "order": 1,
-    "settings":
-    {
-        "number_of_shards": 1,
-        "number_of_replicas": 0,
-        "index.refresh_interval": "5s",
-        "analysis": {
-            "analyzer": {
-                "my_analyzer": {
-                    "tokenizer": "my_tokenizer"
-                }
-            },
-            "tokenizer": {
-                "my_tokenizer": {
-                    "type": "path_hierarchy"
-                }
-            }
-        }
-    },
-    "mappings":
-    {
-        "doc":
-        {
-        "dynamic_templates": [
-                {
-                  "strings_as_keywords": {
-                    "match_mapping_type": "string",
-                    "mapping": {
-                      "type": "keyword"
-                    }
-                  }
-                }
-            ],
-            "dynamic": "true",
-            "properties":
-            {
-                "userAction":
-                {
-                    "type": "boolean"
-                },
-                "clientTime":
-                {
-                    "type": "date",
-                    "format": "strict_date_optional_time||epoch_millis"
-                },
-                "startTime":
-                {
-                    "type": "date",
-                    "format": "strict_date_optional_time||epoch_millis"
-                },
-                "endTime":
-                {
-                    "type": "date",
-                    "format": "strict_date_optional_time||epoch_millis"
-                },
-                "count":
-                {
-                    "type": "integer"
-                },
-                "targetChange": 
-                {
-                    "type": "boolean"
-                },
-                "typeChange": 
-                {
-                    "type": "boolean"
-                },
-                "details":
-                {
-                    "properties":
-                    {
-                        "alt":
-                        {
-                            "type": "boolean"
-                        },
-                        "clicks":
-                        {
-                            "type": "integer"
-                        },
-                        "ctrl": 
-                        {
-                            "type": "boolean"
-                        },
-                        "meta": 
-                        {
-                            "type": "boolean"
-                        },
-                        "shift": 
-                        {
-                            "type": "boolean"
-                        },
-                        "window":
-                        {
-                            "type": "boolean"
-                        },
-                        "x":
-                        {
-                            "type": "integer"
-                        },
-                        "y":
-                        {
-                            "type": "integer"
-                        },
-                        "z":
-                        {
-                            "type": "integer"
-                        }
-                    }
-                },
-                "location":
-                {
-                    "properties":
-                    {
-                        "x":
-                        {
-                            "type": "integer"
-                        },
-                        "y":
-                        {
-                            "type": "integer"
-                        }
-                    }
-                },
-                "major_ver":
-                {
-                    "type": "integer"
-                },
-                "minor_ver":
-                {
-                    "type": "integer"
-                },
-                "patch_ver":
-                {
-                    "type": "integer"
-                },
-                "tool_major_ver":
-                {
-                    "type": "integer"
-                },
-                "tool_minor_ver":
-                {
-                    "type": "integer"
-                },
-                "tool_patch_ver":
-                {
-                    "type": "integer"
-                }
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/docker/logstash/8.11.3/Dockerfile b/docker/logstash/8.11.3/Dockerfile
deleted file mode 100644
index c5ccecc..0000000
--- a/docker/logstash/8.11.3/Dockerfile
+++ /dev/null
@@ -1,31 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM docker.elastic.co/logstash/logstash:8.11.3
-MAINTAINER Joshua Poore <po...@apache.org>
-
-# Ensure default logstash configuration is removed
-RUN rm -f /usr/share/logstash/pipeline/logstash.conf
-
-# Copy Pipeline files over
-ADD pipeline/ /usr/share/logstash/pipeline/
-
-# Copy templates over
-RUN mkdir /usr/share/logstash/templates
-COPY templates/userale.json /usr/share/logstash/templates/userale.json
-
-EXPOSE 8100
-
-CMD ["logstash"]
\ No newline at end of file
diff --git a/docker/logstash/8.11.3/pipeline/logstash-userale.conf b/docker/logstash/8.11.3/pipeline/logstash-userale.conf
deleted file mode 100644
index 8b4313f..0000000
--- a/docker/logstash/8.11.3/pipeline/logstash-userale.conf
+++ /dev/null
@@ -1,52 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-input {
-	http {
-		codec => "json"
-		port => 8100
-		response_headers => { 
-			"Access-Control-Allow-Origin" => "*" 
-            "Access-Control-Allow-Headers" => "Origin, X-Requested-With, Content-Type, Accept"
-        }
-	}
-}
-
-## Add your filters / logstash plugins configuration here
-filter {
-	mutate {
-		remove_field => [ "message", "@version", "headers"]
-	}
-
-	grok {
-    	match => [ "useraleVersion", "(?<major_ver>\d+).(?<minor_ver>\d+)(.(?<patch_ver>\d+))?" ]
-    	match => [ "toolVersion", "(?<tool_major_ver>\d+).(?<tool_minor_ver>\d+)(.(?<tool_patch_ver>\d+))?" ]
-  }
-}
-
-output {
-	# Output data to Elasticsearch instance
-	elasticsearch {
-		hosts => "${ELASTICSEARCH_URL}"
-		index => "userale"
-		manage_template => true
-		template_overwrite => true
-		template => "/usr/share/logstash/templates/userale.json"
-		template_name => "userale"
-	}
-
-	# Debug
-	stdout { codec => rubydebug }
-}
diff --git a/docker/logstash/Dockerfile b/docker/logstash/Dockerfile
new file mode 100644
index 0000000..bde5808
--- /dev/null
+++ b/docker/logstash/Dockerfile
@@ -0,0 +1,7 @@
+ARG ELASTIC_VERSION
+
+# https://www.docker.elastic.co/
+FROM docker.elastic.co/logstash/logstash:${ELASTIC_VERSION}
+
+# Add your logstash plugins setup here
+# Example: RUN logstash-plugin install logstash-filter-json
diff --git a/docker/logstash/config/logstash.yml b/docker/logstash/config/logstash.yml
new file mode 100644
index 0000000..a81b89b
--- /dev/null
+++ b/docker/logstash/config/logstash.yml
@@ -0,0 +1,7 @@
+---
+## Default Logstash configuration from Logstash base image.
+## https://github.com/elastic/logstash/blob/main/docker/data/logstash/config/logstash-full.yml
+#
+http.host: 0.0.0.0
+
+node.name: logstash
diff --git a/docker/logstash/6.8.2/pipeline/logstash-userale.conf b/docker/logstash/pipeline/logstash.conf
similarity index 92%
rename from docker/logstash/6.8.2/pipeline/logstash-userale.conf
rename to docker/logstash/pipeline/logstash.conf
index 8b4313f..518d0ca 100644
--- a/docker/logstash/6.8.2/pipeline/logstash-userale.conf
+++ b/docker/logstash/pipeline/logstash.conf
@@ -16,7 +16,7 @@
 input {
 	http {
 		codec => "json"
-		port => 8100
+		port => 50000
 		response_headers => { 
 			"Access-Control-Allow-Origin" => "*" 
             "Access-Control-Allow-Headers" => "Origin, X-Requested-With, Content-Type, Accept"
@@ -39,14 +39,16 @@ filter {
 output {
 	# Output data to Elasticsearch instance
 	elasticsearch {
-		hosts => "${ELASTICSEARCH_URL}"
+		hosts => "elasticsearch:9200"
 		index => "userale"
 		manage_template => true
 		template_overwrite => true
 		template => "/usr/share/logstash/templates/userale.json"
 		template_name => "userale"
+		user => "logstash_internal"
+		password => "${LOGSTASH_INTERNAL_PASSWORD}"
 	}
 
 	# Debug
 	stdout { codec => rubydebug }
-}
+}
\ No newline at end of file
diff --git a/docker/logstash/8.11.3/templates/userale.json b/docker/logstash/templates/userale.json
similarity index 100%
rename from docker/logstash/8.11.3/templates/userale.json
rename to docker/logstash/templates/userale.json
diff --git a/docker/setup/.dockerignore b/docker/setup/.dockerignore
new file mode 100644
index 0000000..c5dd1c8
--- /dev/null
+++ b/docker/setup/.dockerignore
@@ -0,0 +1,9 @@
+# Ignore Docker build files
+Dockerfile
+.dockerignore
+
+# Ignore OS artifacts
+**/.DS_Store
+
+# Ignore Git files
+.gitignore
diff --git a/docker/setup/Dockerfile b/docker/setup/Dockerfile
new file mode 100644
index 0000000..1cb7538
--- /dev/null
+++ b/docker/setup/Dockerfile
@@ -0,0 +1,6 @@
+ARG ELASTIC_VERSION
+
+# https://www.docker.elastic.co/
+FROM docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION}
+
+ENTRYPOINT ["/entrypoint.sh"]
diff --git a/docker/setup/entrypoint.sh b/docker/setup/entrypoint.sh
new file mode 100755
index 0000000..ac79321
--- /dev/null
+++ b/docker/setup/entrypoint.sh
@@ -0,0 +1,119 @@
+#!/usr/bin/env bash
+
+set -eu
+set -o pipefail
+
+source "${BASH_SOURCE[0]%/*}"/lib.sh
+
+
+# --------------------------------------------------------
+# Users declarations
+
+declare -A users_passwords
+users_passwords=(
+	[logstash_internal]="${LOGSTASH_INTERNAL_PASSWORD:-}"
+	[kibana_system]="${KIBANA_SYSTEM_PASSWORD:-}"
+	[metricbeat_internal]="${METRICBEAT_INTERNAL_PASSWORD:-}"
+	[filebeat_internal]="${FILEBEAT_INTERNAL_PASSWORD:-}"
+	[heartbeat_internal]="${HEARTBEAT_INTERNAL_PASSWORD:-}"
+	[monitoring_internal]="${MONITORING_INTERNAL_PASSWORD:-}"
+	[beats_system]="${BEATS_SYSTEM_PASSWORD=:-}"
+)
+
+declare -A users_roles
+users_roles=(
+	[logstash_internal]='logstash_writer'
+	[metricbeat_internal]='metricbeat_writer'
+	[filebeat_internal]='filebeat_writer'
+	[heartbeat_internal]='heartbeat_writer'
+	[monitoring_internal]='remote_monitoring_collector'
+)
+
+# --------------------------------------------------------
+# Roles declarations
+
+declare -A roles_files
+roles_files=(
+	[logstash_writer]='logstash_writer.json'
+	[metricbeat_writer]='metricbeat_writer.json'
+	[filebeat_writer]='filebeat_writer.json'
+	[heartbeat_writer]='heartbeat_writer.json'
+)
+
+# --------------------------------------------------------
+
+
+log 'Waiting for availability of Elasticsearch. This can take several minutes.'
+
+declare -i exit_code=0
+wait_for_elasticsearch || exit_code=$?
+
+if ((exit_code)); then
+	case $exit_code in
+		6)
+			suberr 'Could not resolve host. Is Elasticsearch running?'
+			;;
+		7)
+			suberr 'Failed to connect to host. Is Elasticsearch healthy?'
+			;;
+		28)
+			suberr 'Timeout connecting to host. Is Elasticsearch healthy?'
+			;;
+		*)
+			suberr "Connection to Elasticsearch failed. Exit code: ${exit_code}"
+			;;
+	esac
+
+	exit $exit_code
+fi
+
+sublog 'Elasticsearch is running'
+
+log 'Waiting for initialization of built-in users'
+
+wait_for_builtin_users || exit_code=$?
+
+if ((exit_code)); then
+	suberr 'Timed out waiting for condition'
+	exit $exit_code
+fi
+
+sublog 'Built-in users were initialized'
+
+for role in "${!roles_files[@]}"; do
+	log "Role '$role'"
+
+	declare body_file
+	body_file="${BASH_SOURCE[0]%/*}/roles/${roles_files[$role]:-}"
+	if [[ ! -f "${body_file:-}" ]]; then
+		sublog "No role body found at '${body_file}', skipping"
+		continue
+	fi
+
+	sublog 'Creating/updating'
+	ensure_role "$role" "$(<"${body_file}")"
+done
+
+for user in "${!users_passwords[@]}"; do
+	log "User '$user'"
+	if [[ -z "${users_passwords[$user]:-}" ]]; then
+		sublog 'No password defined, skipping'
+		continue
+	fi
+
+	declare -i user_exists=0
+	user_exists="$(check_user_exists "$user")"
+
+	if ((user_exists)); then
+		sublog 'User exists, setting password'
+		set_user_password "$user" "${users_passwords[$user]}"
+	else
+		if [[ -z "${users_roles[$user]:-}" ]]; then
+			suberr '  No role defined, skipping creation'
+			continue
+		fi
+
+		sublog 'User does not exist, creating'
+		create_user "$user" "${users_passwords[$user]}" "${users_roles[$user]}"
+	fi
+done
diff --git a/docker/setup/lib.sh b/docker/setup/lib.sh
new file mode 100644
index 0000000..7e635c6
--- /dev/null
+++ b/docker/setup/lib.sh
@@ -0,0 +1,240 @@
+#!/usr/bin/env bash
+
+# Log a message.
+function log {
+	echo "[+] $1"
+}
+
+# Log a message at a sub-level.
+function sublog {
+	echo "   ⠿ $1"
+}
+
+# Log an error.
+function err {
+	echo "[x] $1" >&2
+}
+
+# Log an error at a sub-level.
+function suberr {
+	echo "   ⠍ $1" >&2
+}
+
+# Poll the 'elasticsearch' service until it responds with HTTP code 200.
+function wait_for_elasticsearch {
+	local elasticsearch_host="${ELASTICSEARCH_HOST:-elasticsearch}"
+
+	local -a args=( '-s' '-D-' '-m15' '-w' '%{http_code}' "http://${elasticsearch_host}:9200/" )
+
+	if [[ -n "${ELASTIC_PASSWORD:-}" ]]; then
+		args+=( '-u' "elastic:${ELASTIC_PASSWORD}" )
+	fi
+
+	local -i result=1
+	local output
+
+	# retry for max 300s (60*5s)
+	for _ in $(seq 1 60); do
+		local -i exit_code=0
+		output="$(curl "${args[@]}")" || exit_code=$?
+
+		if ((exit_code)); then
+			result=$exit_code
+		fi
+
+		if [[ "${output: -3}" -eq 200 ]]; then
+			result=0
+			break
+		fi
+
+		sleep 5
+	done
+
+	if ((result)) && [[ "${output: -3}" -ne 000 ]]; then
+		echo -e "\n${output::-3}"
+	fi
+
+	return $result
+}
+
+# Poll the Elasticsearch users API until it returns users.
+function wait_for_builtin_users {
+	local elasticsearch_host="${ELASTICSEARCH_HOST:-elasticsearch}"
+
+	local -a args=( '-s' '-D-' '-m15' "http://${elasticsearch_host}:9200/_security/user?pretty" )
+
+	if [[ -n "${ELASTIC_PASSWORD:-}" ]]; then
+		args+=( '-u' "elastic:${ELASTIC_PASSWORD}" )
+	fi
+
+	local -i result=1
+
+	local line
+	local -i exit_code
+	local -i num_users
+
+	# retry for max 30s (30*1s)
+	for _ in $(seq 1 30); do
+		num_users=0
+
+		# read exits with a non-zero code if the last read input doesn't end
+		# with a newline character. The printf without newline that follows the
+		# curl command ensures that the final input not only contains curl's
+		# exit code, but causes read to fail so we can capture the return value.
+		# Ref. https://unix.stackexchange.com/a/176703/152409
+		while IFS= read -r line || ! exit_code="$line"; do
+			if [[ "$line" =~ _reserved.+true ]]; then
+				(( num_users++ ))
+			fi
+		done < <(curl "${args[@]}"; printf '%s' "$?")
+
+		if ((exit_code)); then
+			result=$exit_code
+		fi
+
+		# we expect more than just the 'elastic' user in the result
+		if (( num_users > 1 )); then
+			result=0
+			break
+		fi
+
+		sleep 1
+	done
+
+	return $result
+}
+
+# Verify that the given Elasticsearch user exists.
+function check_user_exists {
+	local username=$1
+
+	local elasticsearch_host="${ELASTICSEARCH_HOST:-elasticsearch}"
+
+	local -a args=( '-s' '-D-' '-m15' '-w' '%{http_code}'
+		"http://${elasticsearch_host}:9200/_security/user/${username}"
+		)
+
+	if [[ -n "${ELASTIC_PASSWORD:-}" ]]; then
+		args+=( '-u' "elastic:${ELASTIC_PASSWORD}" )
+	fi
+
+	local -i result=1
+	local -i exists=0
+	local output
+
+	output="$(curl "${args[@]}")"
+	if [[ "${output: -3}" -eq 200 || "${output: -3}" -eq 404 ]]; then
+		result=0
+	fi
+	if [[ "${output: -3}" -eq 200 ]]; then
+		exists=1
+	fi
+
+	if ((result)); then
+		echo -e "\n${output::-3}"
+	else
+		echo "$exists"
+	fi
+
+	return $result
+}
+
+# Set password of a given Elasticsearch user.
+function set_user_password {
+	local username=$1
+	local password=$2
+
+	local elasticsearch_host="${ELASTICSEARCH_HOST:-elasticsearch}"
+
+	local -a args=( '-s' '-D-' '-m15' '-w' '%{http_code}'
+		"http://${elasticsearch_host}:9200/_security/user/${username}/_password"
+		'-X' 'POST'
+		'-H' 'Content-Type: application/json'
+		'-d' "{\"password\" : \"${password}\"}"
+		)
+
+	if [[ -n "${ELASTIC_PASSWORD:-}" ]]; then
+		args+=( '-u' "elastic:${ELASTIC_PASSWORD}" )
+	fi
+
+	local -i result=1
+	local output
+
+	output="$(curl "${args[@]}")"
+	if [[ "${output: -3}" -eq 200 ]]; then
+		result=0
+	fi
+
+	if ((result)); then
+		echo -e "\n${output::-3}\n"
+	fi
+
+	return $result
+}
+
+# Create the given Elasticsearch user.
+function create_user {
+	local username=$1
+	local password=$2
+	local role=$3
+
+	local elasticsearch_host="${ELASTICSEARCH_HOST:-elasticsearch}"
+
+	local -a args=( '-s' '-D-' '-m15' '-w' '%{http_code}'
+		"http://${elasticsearch_host}:9200/_security/user/${username}"
+		'-X' 'POST'
+		'-H' 'Content-Type: application/json'
+		'-d' "{\"password\":\"${password}\",\"roles\":[\"${role}\"]}"
+		)
+
+	if [[ -n "${ELASTIC_PASSWORD:-}" ]]; then
+		args+=( '-u' "elastic:${ELASTIC_PASSWORD}" )
+	fi
+
+	local -i result=1
+	local output
+
+	output="$(curl "${args[@]}")"
+	if [[ "${output: -3}" -eq 200 ]]; then
+		result=0
+	fi
+
+	if ((result)); then
+		echo -e "\n${output::-3}\n"
+	fi
+
+	return $result
+}
+
+# Ensure that the given Elasticsearch role is up-to-date, create it if required.
+function ensure_role {
+	local name=$1
+	local body=$2
+
+	local elasticsearch_host="${ELASTICSEARCH_HOST:-elasticsearch}"
+
+	local -a args=( '-s' '-D-' '-m15' '-w' '%{http_code}'
+		"http://${elasticsearch_host}:9200/_security/role/${name}"
+		'-X' 'POST'
+		'-H' 'Content-Type: application/json'
+		'-d' "$body"
+		)
+
+	if [[ -n "${ELASTIC_PASSWORD:-}" ]]; then
+		args+=( '-u' "elastic:${ELASTIC_PASSWORD}" )
+	fi
+
+	local -i result=1
+	local output
+
+	output="$(curl "${args[@]}")"
+	if [[ "${output: -3}" -eq 200 ]]; then
+		result=0
+	fi
+
+	if ((result)); then
+		echo -e "\n${output::-3}\n"
+	fi
+
+	return $result
+}
diff --git a/docker/setup/roles/filebeat_writer.json b/docker/setup/roles/filebeat_writer.json
new file mode 100644
index 0000000..b24b873
--- /dev/null
+++ b/docker/setup/roles/filebeat_writer.json
@@ -0,0 +1,20 @@
+{
+  "cluster": [
+    "manage_ilm",
+    "manage_index_templates",
+    "manage_ingest_pipelines",
+    "monitor",
+    "read_pipeline"
+  ],
+  "indices": [
+    {
+      "names": [
+        "filebeat-*"
+      ],
+      "privileges": [
+        "create_doc",
+        "manage"
+      ]
+    }
+  ]
+}
diff --git a/docker/setup/roles/heartbeat_writer.json b/docker/setup/roles/heartbeat_writer.json
new file mode 100644
index 0000000..9f64fa8
--- /dev/null
+++ b/docker/setup/roles/heartbeat_writer.json
@@ -0,0 +1,18 @@
+{
+  "cluster": [
+    "manage_ilm",
+    "manage_index_templates",
+    "monitor"
+  ],
+  "indices": [
+    {
+      "names": [
+        "heartbeat-*"
+      ],
+      "privileges": [
+        "create_doc",
+        "manage"
+      ]
+    }
+  ]
+}
diff --git a/docker/setup/roles/logstash_writer.json b/docker/setup/roles/logstash_writer.json
new file mode 100644
index 0000000..1e744f6
--- /dev/null
+++ b/docker/setup/roles/logstash_writer.json
@@ -0,0 +1,34 @@
+{
+  "cluster": [
+    "manage_index_templates",
+    "monitor",
+    "manage_ilm"
+  ],
+  "indices": [
+    {
+      "names": [
+        "logs-generic-default",
+        "logstash-*",
+        "ecs-logstash-*",
+        "*"
+      ],
+      "privileges": [
+        "write",
+        "create",
+        "create_index",
+        "manage",
+        "manage_ilm"
+      ]
+    },
+    {
+      "names": [
+        "logstash",
+        "ecs-logstash"
+      ],
+      "privileges": [
+        "write",
+        "manage"
+      ]
+    }
+  ]
+}
diff --git a/docker/setup/roles/metricbeat_writer.json b/docker/setup/roles/metricbeat_writer.json
new file mode 100644
index 0000000..279308c
--- /dev/null
+++ b/docker/setup/roles/metricbeat_writer.json
@@ -0,0 +1,19 @@
+{
+  "cluster": [
+    "manage_ilm",
+    "manage_index_templates",
+    "monitor"
+  ],
+  "indices": [
+    {
+      "names": [
+        ".monitoring-*-mb",
+        "metricbeat-*"
+      ],
+      "privileges": [
+        "create_doc",
+        "manage"
+      ]
+    }
+  ]
+}
diff --git a/docker/site/Dockerfile b/docker/site/Dockerfile
index c53d3b9..678e0a4 100644
--- a/docker/site/Dockerfile
+++ b/docker/site/Dockerfile
@@ -14,7 +14,6 @@
 # limitations under the License.
 
 FROM ruby
-MAINTAINER Michelle Beard <ms...@apache.org>
 
 # Install system wide dependencies
 RUN apt-get -yqq update && apt-get -yqq install \
@@ -30,13 +29,13 @@ RUN sudo -E apt-get -yqq install \
   git
 
 # Clone Apache Flagon Site
-RUN git clone -b master https://github.com/apache/incubator-flagon.git
-WORKDIR /usr/src/incubator-flagon/site/_site
+RUN git clone -b master https://github.com/apache/flagon.git
+WORKDIR /usr/src/flagon/site/_site
 
 # Update data-url to send to logstash
-RUN sed -i 's/data-url=\"\"/data-url="http:\/\/localhost:8100"/' index.html
+RUN sed -i 's/data-url=\"\"/data-url="http:\/\/localhost:50000"/' index.html
 RUN sed -i 's/noSend\: true/noSend\: false/' index.html
 
 # Install system wide dependencies
 RUN apt-get -yqq update && apt-get -yqq install \
-	python-is-python3
+	python-is-python3
\ No newline at end of file
diff --git a/docker/startup/Dockerfile b/docker/startup/Dockerfile
deleted file mode 100644
index 3d82524..0000000
--- a/docker/startup/Dockerfile
+++ /dev/null
@@ -1,31 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM ubuntu:latest
-MAINTAINER Joshua Poore <po...@apache.org>
-
-RUN apt-get update && apt-get install -y wget curl && apt-get clean
-
-ENV DOCKERIZE_VERSION v0.6.1
-
-RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz
-
-RUN tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz
-
-# Copy Files Over
-COPY ./entrypoint.sh /opt/entrypoint.sh
-
-# Make executable
-RUN chmod +x /opt/*.sh
diff --git a/docker/startup/entrypoint.sh b/docker/startup/entrypoint.sh
deleted file mode 100644
index c33a63b..0000000
--- a/docker/startup/entrypoint.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#!/bin/bash
-
-# Wait for the Elasticsearch container to be ready before starting Kibana.
-echo "Stalling for Elasticsearch"
-dockerize -wait http://loadbalancer:9200
diff --git a/docker/tap/Dockerfile b/docker/tap/Dockerfile
deleted file mode 100644
index 0089f95..0000000
--- a/docker/tap/Dockerfile
+++ /dev/null
@@ -1,67 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM python:3.4
-MAINTAINER Michelle Beard <ms...@apache.org>
-
-# Install system wide dependencies
-RUN apt-get -yqq update && apt-get -yqq install \
-	curl \
-	sudo
-
-# Install NodeJS 4.x
-#RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
-RUN curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
-
-RUN sudo -E apt-get -yqq install \
-	nodejs \
-	build-essential 
-
-# Set the work directory
-RUN mkdir -p /usr/src
-WORKDIR /usr/src
-
-# Install gulp
-RUN npm install -g bower gulp
-
-# Install git
-RUN sudo -E apt-get -yqq install \
-  git
-
-# Clone TAP
-RUN git clone -b ryan-sankey https://github.com/apache/incubator-senssoft-tap.git app
-WORKDIR /usr/src/app
-
-# Install packages
-RUN npm install 
-
-# Install TAP requirements
-RUN pip install -r requirements.txt
-
-# Add application files
-RUN cp secrets/secret.py tap/settings
-#ADD secret.py /usr/src/app/tap/settings
-#ADD secrets/neon_counts.js /usr/src/app/public
-#ADD secrets/neon_graph.js /usr/src/app/public
-
-# Add startup script
-#ADD wait-for-postgres.sh /usr/src/app
-RUN chmod +x /usr/src/app/wait-for-postgres.sh
-
-# Startup Application
-RUN gulp build
-
-# Export port
-EXPOSE 8010
diff --git a/docker/tap/README.md b/docker/tap/README.md
deleted file mode 100644
index eaf43b2..0000000
--- a/docker/tap/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-Copy neon_*.json files here until we integrate w/Distill
-
diff --git a/docker/tap/neon_counts.js b/docker/tap/neon_counts.js
deleted file mode 100644
index ff5cadf..0000000
--- a/docker/tap/neon_counts.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var neon_counts = [{"intake_data": {"demographics": {"Gender": 2.0, "Age": 34.0, "Ethnicity (other)": null, "Ethnicity": 4.0}, "education": {"Most school completed": 9.0, "Education in IA (ind_priv)": 2.0, "Secondary concentration, free": null, "Tertiary concentration, free": null, "Education in IA (gov_mil)": 2.0, "Primary concentration, free": "Architecture", "Education Concentration": "Civil Engineering"}, "employment": {"Current job free": "The Lovecraft", "Industry experience as an  [...]
-	export default neon_counts;
\ No newline at end of file
diff --git a/docker/tap/neon_graph.js b/docker/tap/neon_graph.js
deleted file mode 100644
index c84ce9b..0000000
--- a/docker/tap/neon_graph.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var graphData = {"out_degree": {"blt": [{"index": 0, "value": 26}, {"index": 1, "value": 3}, {"index": 2, "value": 5}, {"index": 3, "value": 6}, {"index": 4, "value": 4}, {"index": 5, "value": 8}, {"index": 6, "value": 18}, {"index": 7, "value": 18}, {"index": 8, "value": 7}, {"index": 9, "value": 11}, {"index": 10, "value": 12}, {"index": 11, "value": 2}, {"index": 12, "value": 1}, {"index": 13, "value": 4}, {"index": 14, "value": 32}, {"index": 15, "value": 37}, {"index": 16, "value":  [...]
-export default graphData;
\ No newline at end of file
diff --git a/docker/tap/wait-for-postgres.sh b/docker/tap/wait-for-postgres.sh
deleted file mode 100644
index 96084c7..0000000
--- a/docker/tap/wait-for-postgres.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-
-#   http://www.apache.org/licenses/LICENSE-2.0
-
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#!/bin/bash
-
-delay=2
-sleep $delay
-n=0
-until [ $n -ge 3 ]
-do
-  python manage.py migrate && python manage.py runserver 0.0.0.0:8000 && break
-  echo "Retrying connection in $delay seconds..."
-  n=$[$n+1]
-  sleep 2
-done