O Curator é uma ferramenta de gerenciamento de índices do Elasticsearch que cria, exclui e desativa índices, além de mesclar segmentos. Este tópico aborda a instalação do Curator, o uso da CLI singleton, o agendamento via cron e a migração de índices de nós quentes para nós mornos.
Instale o Curator
Pré-requisitos
-
Uma instância do Alibaba Cloud Elastic Compute Service (ECS) foi criada.
Certifique-se de que a instância esteja na mesma VPC do cluster do Elasticsearch.
Procedimento
-
Nota
Este exemplo utiliza um usuário comum.
-
Instale o Curator:
sudo pip install elasticsearch-curatorNota-
Compatibilidade de versões entre o Curator e o Alibaba Cloud Elasticsearch:
Versão do Curator
Versões suportadas do Elasticsearch
5.6.x
5.x, 6.x
5.7+
5.x, 6.x, 7.x
O Curator não oferece suporte ao Elasticsearch 8.x. Para clusters 8.x, utilize o recurso nativo de Index Lifecycle Management (ILM).
Consulte também a página de Compatibilidade de Versões.
Acesse a documentação oficial: Referência do Curator.
-
-
Verifique a instalação:
sudo curator --versionSaída esperada:
curator, version 5.6.0
Use a CLI singleton
A CLI singleton (curator_cli) executa uma única ação sem arquivos de configuração, sendo ideal para operações pontuais.
Sintaxe básica:
curator_cli [OPTIONS] COMMAND [ARGS]
Operações comuns:
-
Liste todos os índices:
curator_cli --host es-sg-xxxxx.elasticsearch.aliyuncs.com --port 9200 --username elastic --password password show-indices --verbose -
Exclua índices com mais de 30 dias:
curator_cli --host es-sg-xxxxx.elasticsearch.aliyuncs.com --port 9200 --username elastic --password password delete-indices --filter_list '[{"filtertype":"age","source":"creation_date","direction":"older","unit":"days","unit_count":30}]' -
Feche índices correspondentes a um padrão:
curator_cli --host es-sg-xxxxx.elasticsearch.aliyuncs.com --port 9200 --username elastic --password password close --filter_list '[{"filtertype":"pattern","kind":"prefix","value":"logstash-"}]'
A CLI singleton não suporta as operações Alias e Restore. Para essas tarefas, use o comando completo do curator com arquivos de ação.
A sintaxe dos comandos e os parâmetros podem variar entre versões do Curator. Consulte a documentação do Elasticsearch Curator ou execute
curator_cli --helppara verificar as opções da sua versão.
Agende tarefas com cron
Agende tarefas recorrentes de gerenciamento de índices por meio de expressões cron.
Sintaxe:
curator [OPTIONS] ACTION_FILE
Options:
--config PATH Path to configuration file. Default: ~/.curator/curator.yml
--dry-run Do not perform any changes.
--version Show the version and exit.
--help Show this message and exit.
Crie dois arquivos de configuração antes de executar o comando curator:
curator.yml: Defina as configurações de conexão com o cluster do Elasticsearch.
action.yml: Especifica as ações a executar e os filtros a aplicar.
Expressões cron comuns:
|
Agendamento |
Expressão Cron |
|
A cada 15 minutos |
|
|
A cada hora |
|
|
Diariamente à meia-noite |
|
|
Semanalmente aos domingos às 02:00 |
|
Migre índices de nós quentes para nós mornos
Na arquitetura hot-warm, os dados são armazenados em diferentes tipos de nós conforme a frequência de acesso:
Nós quentes (Hot): Armazenam dados acessados frequentemente e indexados recentemente.
Nós mornos (Warm): Armazenam dados mais antigos e com menor frequência de acesso.
O Curator automatiza a migração de índices de nós quentes para mornos com base na idade do índice. Esse processo otimiza os custos de armazenamento e mantém a performance de consulta para dados recentes. Saiba mais sobre a Arquitetura "Hot-Warm" no Elasticsearch 5.x.
-
Crie um arquivo .curator.yml no diretório /usr/curator/. Exemplo:
client: hosts: - http://es-sg-0pxxxxxxxxxxxx234.elasticsearch.aliyuncs.com port: 9200 url_prefix: use_ssl: False certificate: client_cert: client_key: ssl_no_validate: False username: elastic password: password timeout: 30 master_only: False logging: loglevel: INFO logfile: logformat: default blacklist: ['elasticsearch', 'urllib3']hosts: Endpoint interno ou público do cluster do Elasticsearch. Este exemplo usa o endpoint interno.usernameepassword: Credenciais de acesso ao cluster do Elasticsearch.
-
Crie um arquivo action.yml no diretório /usr/curator/. Exemplo:
actions: 1: action: allocation description: "Apply shard allocation filtering rules to the specified indices" options: key: box_type value: warm allocation_type: require wait_for_completion: true timeout_override: continue_if_exception: false disable_action: false filters: - filtertype: pattern kind: prefix value: logstash- - filtertype: age source: creation_date direction: older timestring: '%Y-%m-%dT%H:%M:%S' unit: minutes unit_count: 30Este exemplo migra índices com o prefixo
logstash-, criados em nóshothá mais de 30 minutos, para nóswarm.Principais parâmetros:
Parâmetro
Descrição
actionTipo de ação. Defina como
allocationpara migrar índices entre tipos de nós.keyChave do atributo do nó. Use
box_typepara migração hot-warm.valueTipo de nó de destino. Configure como
warmpara mover índices para nós mornos.filtertype: patternFiltra índices por padrão de nome. O tipo
prefixseleciona índices iniciados com o valor especificado.filtertype: ageFiltra índices por idade. Os parâmetros
uniteunit_countdefinem o limiar de tempo. -
Teste a configuração do curator:
sudo curator --config /usr/curator/.curator.yml /usr/curator/action.ymlSaída esperada:
2019-02-12 20:11:30,607 INFO Preparing Action ID: 1, "allocation" 2019-02-12 20:11:30,612 INFO Trying Action ID: 1, "allocation": Apply shard allocation filtering rules to the specified indices 2019-02-12 20:11:30,693 INFO Updating index setting {'index.routing.allocation.require.box_type': 'warm'} 2019-02-12 20:12:57,925 INFO Health Check for all provided keys passed. 2019-02-12 20:12:57,925 INFO Action ID: 1, "allocation" completed. 2019-02-12 20:12:57,925 INFO Job completed. -
Agende a execução do comando a cada 15 minutos:
crontab -e */15 * * * * curator --config /usr/curator/.curator.yml /usr/curator/action.yml