Gerenciamento de estados de índices no Amazon OpenSearch Service - Amazon OpenSearch Service

Gerenciamento de estados de índices no Amazon OpenSearch Service

O Gerenciamento de estados de índices (ISM) no Amazon OpenSearch Service permite definir políticas de gerenciamento personalizadas que automatizam tarefas de rotina e aplicá-las a índices e padrões de índices. Não é mais necessário configurar e gerenciar processos externos para executar operações de índice.

Uma política contém um estado padrão e uma lista de estados entre os quais o índice transita. Dentro de cada estado, é possível definir uma lista de ações a serem realizadas e das condições que acionam essas transições. Um caso de uso típico é excluir periodicamente índices antigos após um determinado período. Por exemplo, é possível definir uma política que mova seu índice para o estado read_only após 30 dias e, por fim, excluí-lo após 90 dias.

Depois de associar uma política a um índice, o ISM cria um trabalho que é executado em intervalos de 30 a 48 minutos para executar ações de política, verificar condições e fazer a transição do índice para estados diferentes. O tempo base para que esse trabalho seja executado é a cada 30 minutos. Além disso, uma variação aleatória de 0 a 60% é adicionada a ele para garantir que não ocorra um surto de atividade de todos os seus índices ao mesmo tempo. O ISM não executa tarefas se o estado do cluster for vermelho.

O ISM exige o OpenSearch ou Elasticsearch 6.8 ou superior A documentação completa está disponível na documentação do OpenSearch.

Importante

A configuração policy_id para modelos de índice está defasada. Você não pode mais utilizar modelos de índice para aplicar políticas de ISM a índices recém-criados. Você pode continuar gerenciando automaticamente índices recém-criados com o campo do modelo de ISM. Esta atualização introduz uma alteração que afeta os modelos existentes do CloudFormation que usam essa configuração.

Criar uma política do IAM

Para começar a usar o gerenciamento de estados de índices

  1. Abra o console do Amazon OpenSearch Service em https://console.aws.amazon.com/esv3/.

  2. Selecione o domínio para o qual você deseja criar uma política do ISM.

  3. No painel do domínio, navegue até o URL do OpenSearch Dashboards e faça login com seu nome de usuário mestre e a senha correspondente. O URL segue este formato:

    domain-endpoint/_dashboards/
  4. Abra o painel de navegação esquerdo no OpenSearch Dashboards, escolha Index Management (Gerenciamento de índices) e Create policy (Criar política).

  5. Use o editor visual ou o editor JSON para criar políticas. Recomendamos que você use o editor visual, pois ele oferece uma maneira mais estruturada de definir políticas. Para obter ajuda com a criação de políticas, consulte as políticas de exemplo abaixo.

  6. Depois de criar uma política, anexe-a a um ou mais índices:

    POST _plugins/_ism/add/my-index { "policy_id": "my-policy-id" }
    nota

    Se o seu domínio estiver executando uma versão herdada do Elasticsearch, use _opendistro em vez de _plugins.

    Como alternativa, selecione o índice no OpenSearch Dashboards e escolha Apply (Aplicar).

Políticas de exemplo

As políticas de exemplo a seguir demonstram como automatizar casos de uso comuns do ISM.

Armazenamento de atividade muito alta para alta atividade para baixa atividade

Este exemplo de política move um índice do armazenamento de atividade muito alta para o UltraWarm e, eventualmente, para o armazenamento de baixa atividade. Em seguida, exclui o índice.

O índice está inicialmente no estado hot. Após dez dias, o ISM o transfere
 para o estado warm. 80 dias depois, quando o índice tiver 90 dias, o ISM move o índice para o estado cold
. Após um ano, o serviço envia uma notificação para uma sala do Amazon Chime informando que o índice está sendo excluído e, depois, o exclui permanentemente.

Observe que os índices frios exigem a operação cold_delete em vez da operação normal delete. Observe também que um timestamp_field explícito é necessário em seus dados para gerenciar índices frios com ISM.

{ "policy": { "description": "Demonstrate a hot-warm-cold-delete workflow.", "default_state": "hot", "schema_version": 1, "states": [{ "name": "hot", "actions": [], "transitions": [{ "state_name": "warm", "conditions": { "min_index_age": "10d" } }] }, { "name": "warm", "actions": [{ "warm_migration": {}, "retry": { "count": 5, "delay": "1h" } }], "transitions": [{ "state_name": "cold", "conditions": { "min_index_age": "90d" } }] }, { "name": "cold", "actions": [{ "cold_migration": { "timestamp_field": "<your timestamp field>" } } ], "transitions": [{ "state_name": "delete", "conditions": { "min_index_age": "365d" } }] }, { "name": "delete", "actions": [{ "notification": { "destination": { "chime": { "url": "<URL>" } }, "message_template": { "source": "The index {{ctx.index}} is being deleted." } } }, { "cold_delete": {} }] } ] } }

Reduzir a contagem de réplicas

Esta política de exemplo mais simples reduz a contagem de réplicas para zero após sete dias para conservar espaço em disco e exclui o índice após 21 dias. Essa política pressupõe que seu índice não seja crítico e não receba mais solicitações de gravação. Ter réplicas zero traz algum risco de perda de dados.

{ "policy": { "description": "Changes replica count and deletes.", "schema_version": 1, "default_state": "current", "states": [{ "name": "current", "actions": [], "transitions": [{ "state_name": "old", "conditions": { "min_index_age": "7d" } }] }, { "name": "old", "actions": [{ "replica_count": { "number_of_replicas": 0 } }], "transitions": [{ "state_name": "delete", "conditions": { "min_index_age": "21d" } }] }, { "name": "delete", "actions": [{ "delete": {} }], "transitions": [] } ] } }

Obter o snapshot de um índice

Esta política de exemplo usa a operação snapshot para obter um instantâneo de um índice assim que ele passa a conter pelo menos um documento. repository é o nome do repositório manual de snapshots que você registrou no Amazon S3. snapshot é o nome do snapshot. Para obter pré-requisitos para a obtenção de snapshot e etapas para registrar um repositório, consulte Criação de snapshots de índices no Amazon OpenSearch Service.

{ "policy": { "description": "Takes an index snapshot.", "schema_version": 1, "default_state": "empty", "states": [{ "name": "empty", "actions": [], "transitions": [{ "state_name": "occupied", "conditions": { "min_doc_count": 1 } }] }, { "name": "occupied", "actions": [{ "snapshot": { "repository": "<my-repository>", "snapshot": "<my-snapshot>" } }], "transitions": [] } ] } }

Modelos do ISM

Você pode configurar um campo ism_template em uma política para que, quando criar um índice que corresponda ao padrão do modelo, a política seja anexada automaticamente a esse índice. Neste exemplo, qualquer índice que você criar com um nome começando com “log” é automaticamente correspondido à política do ISM my-policy-id:

PUT _plugins/_ism/policies/my-policy-id { "policy": { "description": "Example policy.", "default_state": "...", "states": [...], "ism_template": { "index_patterns": ["log*"], "priority": 100 } } }

Para obter um exemplo mais detalhado, consulte Exemplo de política com modelo de ISM para rolagem automática.

Diferenças

Comparado ao OpenSearch e ao Elasticsearch, o ISM para o Amazon OpenSearch Service tem várias diferenças.

Operações do ISM

  • O OpenSearch Service oferece suporte a três operações do ISM exclusivas, warm_migration, cold_migration e cold_delete:

    • Se o seu domínio tiver o UltraWarm ativado, a ação warm_migration fará a transição do índice para o armazenamento de alta atividade.

    • Se o seu domínio tiver armazenamento frio habilitado, a ação cold_migration passará o índice para o armazenamento frio, e a ação cold_delete excluirá um índice do armazenamento frio.

    Mesmo que uma dessas ações não seja concluída dentro do período de tempo limite definido, a migração ou exclusão dos índices ainda continuará. Definir uma error_notification para uma das ações acima vai notificar você de que a ação falhou se não tiver sido concluída em um período de tempo limite, mas a notificação é apenas para sua própria referência. A operação real não tem tempo limite inerente e continua a ser executada até que eventualmente seja bem-sucedida ou falhe.

  • Se o seu domínio executa o OpenSearch ou o Elasticsearch 7.4 ou posterior, o OpenSearch Service oferece suporte às operações open e close do ISM.

  • Se o seu domínio executa o OpenSearch ou o Elasticsearch 7.7 ou posterior, o OpenSearch Service oferece suporte à operação snapshot do ISM.

Operações ISM de armazenamento de baixa atividade

Para índices frios, você deve especificar um parâmetro ?type=_cold ao usar as seguintes APIs do ISM:

Essas APIs para índices frios têm as seguintes diferenças adicionais:

  • Operadores curingas não são aceitos, exceto quando usados no final. Por exemplo, _plugins/_ism/<add, remove, change_policy, retry, explain>/logstash-* é aceito, mas _plugins/_ism/<add, remove, change_policy, retry, explain>/iad-*-prod não.

  • Não há suporte a índices e padrões de vários índices. Por exemplo, _plugins/_ism/<add, remove, change_policy, retry, explain>/app-logs é aceito, mas _plugins/_ism/<add, remove, change_policy, retry, explain>/app-logs,sample-data não.

Configurações do ISM

O OpenSearch e o Elasticsearch permitem alterar todas as configurações do ISM disponíveis usando via API _cluster/settings. No Amazon OpenSearch Service, só é possível alterar as seguintes configurações:

  • Configurações no nível do cluster:

    • enabled

    • history.enabled

  • Configurações no nível do índice:

    • rollover_alias