From 21507c76ca1fa51118be37bb00411ae719e41d70 Mon Sep 17 00:00:00 2001
From: Sherif Abdel-Naby
Date: Tue, 7 Apr 2020 19:42:05 +0200
Subject: [PATCH] Add Rubban to Elastic Stack Tools :sparkles:
Signed-off-by: Sherif Abdel-Naby
---
Makefile | 2 +-
README.md | 15 ++++++++-------
docker-compose.tools.yml | 13 ++++++++++++-
3 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/Makefile b/Makefile
index b758605..18516d1 100644
--- a/Makefile
+++ b/Makefile
@@ -6,7 +6,7 @@ COMPOSE_PREFIX_CMD := COMPOSE_DOCKER_CLI_BUILD=1
COMPOSE_ALL_FILES := -f docker-compose.yml -f docker-compose.monitor.yml -f docker-compose.tools.yml -f docker-compose.nodes.yml
ELK_SERVICES := elasticsearch logstash kibana
ELK_MONITORING := elasticsearch-exporter logstash-exporter filebeat-cluster-logs
-ELK_TOOLS := curator elastalert
+ELK_TOOLS := curator elastalert rubban
ELK_NODES := elasticsearch-1 elasticsearch-2
ELK_MAIN_SERVICES := ${ELK_SERVICES} ${ELK_MONITORING} ${ELK_TOOLS}
ELK_ALL_SERVICES := ${ELK_MAIN_SERVICES} ${ELK_NODES}
diff --git a/README.md b/README.md
index 0019b74..42b2bda 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
🐳 Elastic Stack on Docker, with preconfigured security, tools, self-monitoring, and Prometheus Metrics Exporters
-With tools like Curator, ElastAlert for Alerting.
+With tools like Curator, Rubban, ElastAlert for Alerting.
@@ -25,7 +25,7 @@
# Introduction
-Elastic Stack (AKA **ELK**) Docker Composition, preconfigured with **Security**, **Monitoring**, Tools such as **ElastAlert** for alerting and **Curator**.
+Elastic Stack (AKA **ELK**) Docker Composition, preconfigured with **Security**, **Monitoring**, Tools such as **ElastAlert** for alerting, **Rubban** and **Curator**.
Based on [Official Elastic Docker Images](https://www.docker.elastic.co/)
@@ -37,13 +37,13 @@ Stack Version: [7.6.2](https://www.elastic.co/blog/elastic-stack-7-6-0-released)
- Configured as Production Single Node Cluster. (With a multi-node option for experimenting).
- Security Enabled (under basic license).
- SSL Enabled for Transport Layer and Kibana.
-- Use Docker-Compose and `.env` to configure your stack.
+- Use Docker-Compose and `.env` to configure your entire stack.
- Automated Script that initializes and persist Elasticsearch's Keystore and SSL Certifications.
-- Curator with Crond preconfigured for Automated Scheduled tasks (e.g Snapshots to S3).
- Self-Monitoring Metrics Enabled.
- Prometheus Exporters for Stack Metrics.
-- Filebeat instance for shipping Stack logs to Elasticsearch itself.
-- ElastAlert preconfigured for Alerting.
+- [ElastAlert](https://github.com/Yelp/elastalert) preconfigured for Alerting.
+- [Curator](https://github.com/elastic/curator) with Crond preconfigured for Automated Scheduled tasks (e.g Snapshots to S3).
+- [Rubban](https://github.com/sherifabdlnaby/rubban) for Kibana curating tasks.
- Embedded Container Healthchecks for Stack Images.
More points at [comparison with deviantony/docker-elk](#Comparison)
@@ -88,7 +88,7 @@ Username: `elastic` Password: `changeme` (or `ELASTIC_PASSWORD` value in `.env`)
```shell
$ make monitoring
```
-#### To Start Tools (ElastAlert and Curator)
+#### To Start Tools (ElastAlert, Rubban, and Curator)
```shell
$ make tools
```
@@ -127,6 +127,7 @@ $ make down
* ElastAlert Configuration in `./tools/elastalert/config`.
* ElastAlert Alert rules in `./tools/elastalert/rules`, [head to ElastAlert docs to lookup how to create alerts.](https://elastalert.readthedocs.io/en/latest/elastalert.html)
* Curator Actions at `./tools/curator/actions` and `./tools/curator/crontab`.
+* Rubban Configuration using Docker-Compose passed Environment Variables.
### Setting Up Keystore
diff --git a/docker-compose.tools.yml b/docker-compose.tools.yml
index 090f099..7058796 100644
--- a/docker-compose.tools.yml
+++ b/docker-compose.tools.yml
@@ -28,4 +28,15 @@ services:
ELASTIC_USERNAME: ${ELASTIC_USERNAME}
ELASTIC_PASSWORD: ${ELASTIC_PASSWORD}
ports:
- - 3030:3030
\ No newline at end of file
+ - 3030:3030
+
+ rubban:
+ image: sherifabdlnaby/rubban:latest
+ restart: unless-stopped
+ environment:
+ RUBBAN_KIBANA_HOST: "https://${KIBANA_HOST}:${KIBANA_PORT}"
+ RUBBAN_KIBANA_USER: ${ELASTIC_USERNAME}
+ RUBBAN_KIBANA_PASSWORD: ${ELASTIC_PASSWORD}
+ RUBBAN_REFRESHINDEXPATTERN_ENABLED: 'true'
+ RUBBAN_REFRESHINDEXPATTERN_SCHEDULE: '*/5 * * * *'
+ RUBBAN_REFRESHINDEXPATTERN_PATTERNS: '*'