App-ElasticSearch-Utilities
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
scripts/es-alias-manager.pl view on Meta::CPAN
if( exists $desired{$alias} && exists $current{$alias} ) {
next;
}
my $action = exists $desired{$alias} ? 'add' : 'remove';
push @updates, { $action => { index => $index, alias => $alias} };
# Do we skip an add or remove?
next if exists $opt{skip} && $action eq $opt{skip};
verbose({color=>'cyan'}, "$index: $action alias '$alias'");
}
}
debug({color=>'magenta'}, "Aliases for $index : " . join(',', keys %desired) );
if( @updates ) {
eval {
es_request('_aliases', { method => 'POST' }, { actions => \@updates });
output({color=>'green'}, "Updates applied for $index : " . join(',', keys %desired) );
};
if( my $err = $@ ){
output({color=>'red'}, " + Failed to set aliases for $index\n", $err);
}
}
}
__END__
=pod
=head1 NAME
es-alias-manager.pl - Allow easy alias management for daily indexes
=head1 VERSION
version 8.8
=head1 SYNOPSIS
es-alias-manager.pl --local --config /etc/elasticsearch/aliases.yml
Options:
--help print help
--manual print full manual
--config Location of Config File, default /etc/elasticsearch/aliases.yml
--skip Action name to be skipped, 'add' or 'remove', default none
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
=head1 DESCRIPTION
This script assists in maintaining the aliases for relative or daily indexes across multiple datacenters.
Use with cron:
22 4 * * * es-alias-manager.pl --local --config /etc/elasticsearch/aliases.yml
This will allow you to split your cluster between datacenters (or whatever) and alias the split clusters
to a homogenous index that standard LogStash/Kibana interfaces will understand.
If I create the following in /etc/elasticsearch/aliases.yml
---
pickle: ~
logstash:
pattern: \*-logstash-{{DATE}}
daily: logstash-{{DATE}}
relative:
alias: logstash-{{PERIOD}}
periods:
today:
from:
days: 0
to:
days: 0
lastweek:
from:
days: 14
to:
days: 7
The C<pickle> alias is flagged as an alias to ignore in the addition/removal
process. This script will automatically ignore any alias that begins with a '.'.
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.479 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )