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.

Elastic Stack Version 7^^ @@ -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: '*'