From 95272b72f42e98b42e94427741f33b69c554a170 Mon Sep 17 00:00:00 2001 From: Antoine Cotten Date: Fri, 16 Oct 2020 19:52:58 +0200 Subject: [PATCH] Simplify curator extension --- extensions/curator/Dockerfile | 24 +++++++++++-------- extensions/curator/README.md | 4 +++- extensions/curator/config/curator.yml | 24 +++++-------------- .../config/delete_log_files_curator.yml | 11 +++++---- extensions/curator/curator-compose.yml | 16 ++++++++----- extensions/curator/entrypoint.sh | 6 ----- 6 files changed, 39 insertions(+), 46 deletions(-) delete mode 100755 extensions/curator/entrypoint.sh diff --git a/extensions/curator/Dockerfile b/extensions/curator/Dockerfile index bf51d3d..84ff5ad 100644 --- a/extensions/curator/Dockerfile +++ b/extensions/curator/Dockerfile @@ -1,13 +1,17 @@ -FROM alpine:3.8 +FROM bitnami/elasticsearch-curator:5.8.1 -ENV CURATOR_VERSION=5.8.1 +USER root -RUN apk --update add --no-cache tini python py-pip \ - && pip install elasticsearch-curator==${CURATOR_VERSION} +RUN install_packages cron && \ + echo \ + '* * * * *' \ + root \ + LC_ALL=C.UTF-8 LANG=C.UTF-8 \ + /opt/bitnami/python/bin/curator \ + --config=/usr/share/curator/config/curator.yml \ + /usr/share/curator/config/delete_log_files_curator.yml \ + '>/proc/1/fd/1' '2>/proc/1/fd/2' \ + >>/etc/crontab -COPY entrypoint.sh / - -WORKDIR /usr/share/curator -COPY config ./config - -ENTRYPOINT ["/entrypoint.sh"] +ENTRYPOINT ["cron"] +CMD ["-f", "-L8"] diff --git a/extensions/curator/README.md b/extensions/curator/README.md index ab91f53..57da5e0 100644 --- a/extensions/curator/README.md +++ b/extensions/curator/README.md @@ -11,8 +11,10 @@ command line argument referencing the `curator-compose.yml` file: $ docker-compose -f docker-compose.yml -f extensions/curator/curator-compose.yml up ``` +This sample setup demonstrates how to run `curator` every minute using `cron`. + All configuration files are available in the `config/` directory. ## Documentation -https://github.com/elastic/curator +https://www.elastic.co/guide/en/elasticsearch/client/curator/current/index.html diff --git a/extensions/curator/config/curator.yml b/extensions/curator/config/curator.yml index f5faf05..8b06971 100644 --- a/extensions/curator/config/curator.yml +++ b/extensions/curator/config/curator.yml @@ -1,24 +1,12 @@ ---- -# Remember, leave a key empty if there is no value. None will be a string, -# not a Python "NoneType" +# Curator configuration +# https://www.elastic.co/guide/en/elasticsearch/client/curator/current/configfile.html + client: hosts: - - ${ELASTICSEARCH_HOST} + - elasticsearch 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 + http_auth: elastic:changeme logging: - loglevel: DEBUG - logfile: + loglevel: INFO logformat: default diff --git a/extensions/curator/config/delete_log_files_curator.yml b/extensions/curator/config/delete_log_files_curator.yml index f39c35f..779c67a 100644 --- a/extensions/curator/config/delete_log_files_curator.yml +++ b/extensions/curator/config/delete_log_files_curator.yml @@ -2,10 +2,11 @@ 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. + 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 the number of days specified by unit_count. + 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 @@ -17,4 +18,4 @@ actions: source: creation_date direction: older unit: days - unit_count: ${UNIT_COUNT} + unit_count: 2 diff --git a/extensions/curator/curator-compose.yml b/extensions/curator/curator-compose.yml index e14a011..96dae3c 100644 --- a/extensions/curator/curator-compose.yml +++ b/extensions/curator/curator-compose.yml @@ -4,12 +4,16 @@ 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 + init: true + volumes: + - type: bind + source: ./extensions/curator/config/curator.yml + target: /usr/share/curator/config/curator.yml + read_only: true + - type: bind + source: ./extensions/curator/config/delete_log_files_curator.yml + target: /usr/share/curator/config/delete_log_files_curator.yml + read_only: true networks: - elk depends_on: diff --git a/extensions/curator/entrypoint.sh b/extensions/curator/entrypoint.sh deleted file mode 100755 index 7c814d6..0000000 --- a/extensions/curator/entrypoint.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/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