NAME

es-daily-index-maintenance.pl - Run to prune old indexes and optimize existing

VERSION

version 8.7

SYNOPSIS

es-daily-index-maintenance.pl --all --local

Options:

--help              print help
--manual            print full manual
--all               Run close, delete, optimize, and replicas tools
--close             Run close for indexes older than
--close-days        Age of the oldest index to keep open (default:60)
--delete            Run delete indexes older than
--delete-days       Age of oldest index to keep (default: 90)
--optimize          Run optimize on indexes
--optimize-days     Age of first index to optimize (default: 1)
--replicas          Run the replic aging hook
--replicas-age      Age of the index to reach the minimum replicas (default:60)
--replicas-min      Minimum number of replicas this index may have (default:0)
--replicas-max      Maximum number of replicas this index may have (default:1)
--skip-alias        Indexes with these aliases will be skipped from all maintenance, can be set more than once

From App::ElasticSearch::Utilities:

--local         Use localhost as the elasticsearch host
--host          ElasticSearch host to connect to
--port          HTTP port for your cluster
--proto         Defaults to 'http', can also be 'https'
--http-username HTTP Basic Auth username
--password-exec Script to run to get the users password
--insecure      Don't verify TLS certificates
--cacert        Specify the TLS CA file
--capath        Specify the directory with TLS CAs
--cert          Specify the path to the client certificate
--key           Specify the path to the client private key file
--noop          Any operations other than GET are disabled, can be negated with --no-noop
--timeout       Timeout to ElasticSearch, default 10
--keep-proxy    Do not remove any proxy settings from %ENV
--index         Index to run commands against
--base          For daily indexes, reference only those starting with "logstash"
                 (same as --pattern logstash-* or logstash-DATE)
--pattern       Use a pattern to operate on the indexes
--days          If using a pattern or base, how many days back to go, default: 1

See also the "CONNECTION ARGUMENTS" and "INDEX SELECTION ARGUMENTS" sections from App::ElasticSearch::Utilities.

From CLI::Helpers:

--data-file         Path to a file to write lines tagged with 'data => 1'
--tags              A comma separated list of tags to display
--color             Boolean, enable/disable color, default use git settings
--verbose           Incremental, increase verbosity (Alias is -v)
--debug             Show developer output
--debug-class       Show debug messages originating from a specific package, default: main
--quiet             Show no output (for cron)
--syslog            Generate messages to syslog as well
--syslog-facility   Default "local0"
--syslog-tag        The program name, default is the script name
--syslog-debug      Enable debug messages to syslog if in use, default false
--nopaste           Use App::Nopaste to paste output to configured paste service
--nopaste-public    Defaults to false, specify to use public paste services
--nopaste-service   Comma-separated App::Nopaste service, defaults to Shadowcat

DESCRIPTION

This script assists in maintaining the indexes for logging clusters through routine deletion and optimization of indexes.

Use with cron:

22 4 * * * es-daily-index-maintenance.pl --local --all --delete-days=180 --replicas-age=90 --replicas-min=1

OPTIONS

close

Run the close hook

close-days

Integer, close indexes older than this number of days

delete

Run the delete hook

delete-days

Integer, delete indexes older than this number of days

optimize

Run the optimization hook

optimize-days

Integer, optimize indexes older than this number of days

replicas

Run the replicas hook.

replicas-age

The age at which we reach --replicas-min, default 60

replicas-min

The minimum number of replicas to allow replica aging to set. The default is 0

--replicas-min=1
replicas-max

The maximum number of replicas to allow replica aging to set. The default is 1

--replicas-max=2
skip-alias

Can be set more than once. Any indexes with an alias that matches this list is skipped from operations. This is a useful, lightweight mechanism to preserve indexes.

--skip-alias preserve --skip-alias pickle

In addition to user specified aliases, the aliases .hold and .do_not_erase will always be excluded.

AUTHOR

Brad Lhotsky <brad@divisionbyzero.net>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2023 by Brad Lhotsky.

This is free software, licensed under:

The (three-clause) BSD License