es-daily-index-maintenance.pl - Run to prune old indexes and optimize existing
version 8.8
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
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
Run the close hook
Integer, close indexes older than this number of days
Run the delete hook
Integer, delete indexes older than this number of days
Run the optimization hook
Integer, optimize indexes older than this number of days
Run the replicas hook.
The age at which we reach --replicas-min, default 60
The minimum number of replicas to allow replica aging to set. The default is 0
--replicas-min=1
The maximum number of replicas to allow replica aging to set. The default is 1
--replicas-max=2
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.
.hold
.do_not_erase
Brad Lhotsky <brad@divisionbyzero.net>
This software is Copyright (c) 2024 by Brad Lhotsky.
This is free software, licensed under:
The (three-clause) BSD License
To install App::ElasticSearch::Utilities, copy and paste the appropriate command in to your terminal.
cpanm
cpanm App::ElasticSearch::Utilities
CPAN shell
perl -MCPAN -e shell install App::ElasticSearch::Utilities
For more information on module installation, please visit the detailed CPAN module installation guide.