From 1ac84fbea7163f53939bc11dd8224205ab9c2771 Mon Sep 17 00:00:00 2001 From: Eugen Cristea Date: Tue, 24 Jul 2018 09:36:45 +0200 Subject: [PATCH] Add Curator extension (#297) --- extensions/curator/Dockerfile | 13 ++++++++++ extensions/curator/README.md | 18 ++++++++++++++ extensions/curator/config/curator.yml | 24 +++++++++++++++++++ .../config/delete_log_files_curator.yml | 20 ++++++++++++++++ extensions/curator/curator-compose.yml | 18 ++++++++++++++ extensions/curator/entrypoint.sh | 6 +++++ 6 files changed, 99 insertions(+) create mode 100644 extensions/curator/Dockerfile create mode 100644 extensions/curator/README.md create mode 100644 extensions/curator/config/curator.yml create mode 100644 extensions/curator/config/delete_log_files_curator.yml create mode 100644 extensions/curator/curator-compose.yml create mode 100755 extensions/curator/entrypoint.sh diff --git a/extensions/curator/Dockerfile b/extensions/curator/Dockerfile new file mode 100644 index 0000000..43d7859 --- /dev/null +++ b/extensions/curator/Dockerfile @@ -0,0 +1,13 @@ +FROM alpine:3.8 + +ENV CURATOR_VERSION=5.5.4 + +RUN apk --update add --no-cache tini python py-pip \ + && pip install elasticsearch-curator==${CURATOR_VERSION} + +COPY entrypoint.sh / + +WORKDIR /usr/share/curator +COPY config ./config + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/extensions/curator/README.md b/extensions/curator/README.md new file mode 100644 index 0000000..ab91f53 --- /dev/null +++ b/extensions/curator/README.md @@ -0,0 +1,18 @@ +# Curator + +Elasticsearch Curator helps you curate or manage your indices. + +## Usage + +If you want to include the Curator extension, run Docker Compose from the root of the repository with an additional +command line argument referencing the `curator-compose.yml` file: + +```bash +$ docker-compose -f docker-compose.yml -f extensions/curator/curator-compose.yml up +``` + +All configuration files are available in the `config/` directory. + +## Documentation + +https://github.com/elastic/curator diff --git a/extensions/curator/config/curator.yml b/extensions/curator/config/curator.yml new file mode 100644 index 0000000..a3771db --- /dev/null +++ b/extensions/curator/config/curator.yml @@ -0,0 +1,24 @@ +--- +# Remember, leave a key empty if there is no value. None will be a string, +# not a Python "NoneType" +client: + hosts: + - ${ELASTICSEARCH_HOST} + port: 9200 + url_prefix: + use_ssl: False + certificate: + client_cert: + client_key: + aws_key: + aws_secret_key: + aws_region: + ssl_no_validate: False + http_auth: + timeout: 30 + master_only: False + +logging: + loglevel: DEBUG + logfile: /usr/share/curator/curator.log + logformat: default diff --git a/extensions/curator/config/delete_log_files_curator.yml b/extensions/curator/config/delete_log_files_curator.yml new file mode 100644 index 0000000..f39c35f --- /dev/null +++ b/extensions/curator/config/delete_log_files_curator.yml @@ -0,0 +1,20 @@ +actions: + 1: + action: delete_indices + description: >- + Delete indices. Find which to delete by first limiting the list to logstash- + prefixed indices. Then further filter those to prevent deletion of anything + less than ${UNIT_COUNT} days old. Ignore the error if the filter does not result in an + actionable list of indices (ignore_empty_list) and exit cleanly. + options: + ignore_empty_list: True + disable_action: False + filters: + - filtertype: pattern + kind: prefix + value: logstash- + - filtertype: age + source: creation_date + direction: older + unit: days + unit_count: ${UNIT_COUNT} diff --git a/extensions/curator/curator-compose.yml b/extensions/curator/curator-compose.yml new file mode 100644 index 0000000..351b1cf --- /dev/null +++ b/extensions/curator/curator-compose.yml @@ -0,0 +1,18 @@ +version: '2' + +services: + + + curator: + build: + context: extensions/curator/ + environment: + ELASTICSEARCH_HOST: elasticsearch + CRON: 0 0 * * * + CONFIG_FILE: /usr/share/curator/config/curator.yml + COMMAND: /usr/share/curator/config/delete_log_files_curator.yml + UNIT_COUNT: 2 + networks: + - elk + depends_on: + - elasticsearch diff --git a/extensions/curator/entrypoint.sh b/extensions/curator/entrypoint.sh new file mode 100755 index 0000000..7c814d6 --- /dev/null +++ b/extensions/curator/entrypoint.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +echo "$CRON /usr/bin/curator --config ${CONFIG_FILE} ${COMMAND}" >>/etc/crontabs/root + +# https://github.com/krallin/tini/blob/master/README.md#subreaping +tini -s -- crond -f -d 8 -l 8