Por que meu domínio do Amazon OpenSearch Service travou no estado “Processing” (Processando)?

Última atualização: 05/08/2021

Meu cluster do Amazon OpenSearch Service (sucessor do Amazon Elasticsearch Service) travou no estado “Processando”. Por que isso está acontecendo e como posso evitar?

Breve descrição

Seu cluster do OpenSearch Service entra no estado “Processing” (Processing) quando está no meio de uma alteração de configuração. O cluster pode travar no estado “Processando” se ocorrer alguma das seguintes situações:

  • Um novo conjunto de nós de dados não é iniciado.
  • A migração de fragmento para o novo conjunto de nós de dados não foi bem-sucedida.

Se você iniciar uma alteração de configuração, o estado do domínio mudará para “Processando” enquanto o OpenSearch Service cria um novo ambiente. No novo ambiente, o OpenSearch Service lança um novo conjunto de nós aplicáveis (como dados, primário ou UltraWarm). Após a conclusão da migração, os nós mais antigos são terminados.

Resolução

Um novo conjunto de nós de dados falhou ao iniciar

Quando você faz alterações simultâneas na configuração do cluster antes da conclusão da primeira alteração, o cluster pode travar. Certifique-se de conferir se há implantações azuis/verdes em andamento no cluster. Para conferir se há implantações azuis/verdes em andamento, confira o número total de nós no Amazon CloudWatch. Se você observar uma contagem de nós maior do que o esperado, é provável que uma implantação azul/verde esteja em andamento.

Use a seguinte chamada de API para recuperar mais informações sobre nós adicionais e o processo de migração de fragmento:

GET /_cluster/health?pretty and GET /_cat/recovery?pretty

Se você estiver usando um domínio da Amazon Virtual Private Cloud (VPC), confira se você conta com endereços IP gratuitos suficientes em sua sub-rede. Se não houver endereços IP suficientes especificados na sub-rede, o lançamento de novos nós falhará. Como resultado, o cluster fica preso no estado “Processando”. Para obter mais informações, consulte Reservar endereços IP em uma sub-rede da VPC.

Se você criptografou um domínio do OpenSearch Service, certifique-se que a chave do AWS KMS exista na sua conta da AWS antes de fazer uma alteração na configuração. Se você excluiu acidentalmente a chave do AWS KMS, o cluster pode travar no estado “Processando”.

Seu cluster também pode travar pelos seguintes motivos:

  • Um nó principal sobrecarregado com muitas tarefas pendentes ou altos níveis de pressão de memória de CPU e JVM. Use a API cat pending tasks para conferir se há tarefas pendentes. Você também pode conferir as métricas MasterCPUUtilization e MasterJVMMemoryPressure no Amazon CloudWatch.
  • Os pré-requisitos de autenticação do Amazon Cognito para o OpenSearch Dashboards não foram atendidos. Se você configurou o Amazon Cognito para autenticação do OpenSearch Dashboards, verifique se você atendeu aos pré-requisitos de autenticação. Por exemplo, o OpenSearch Service deve ter o grupo de usuários, o grupo de identidades do Amazon Cognito e a função do AWS Identity Access Management (IAM) definida e com permissões corretas. O nome padrão para essa função é CognitoAccessForAmazonOpenSearch (com a política AmazonCognitoAccess anexada).
    Observação: se você criou uma função do IAM personalizada, certifique-se de que sua função tenha as mesmas permissões que CognitoAccessForAmazonOpenSearch.

A migração de fragmento para o novo conjunto de nós de dados não foi bem-sucedida

Uma migração de fragmento (do conjunto antigo para o novo conjunto de nós de dados) pode ser mal-sucedida pelos seguintes motivos:

  • Seu cluster do OpenSearch Service está atualmente com o status de integridade vermelho. Se o cluster estiver com status de integridade vermelho, procure solucionar o status de cluster vermelho para que ele fique em um estado íntegro.
    Observação: é uma prática recomendada configurar seu cluster quando ele estiver em um estado íntegro.
  • Os nós estão fora de serviço devido a uma carga de processamento pesada causada pela alta pressão de memória da JVM e pelo uso da CPU. Para resolver esse problema, reduza o tráfego de rede para o cluster ou interrompa totalmente o tráfego de rede para retornar o cluster a um estado íntegro. Caso contrário, o processo de implantação azul/verde pode ter seu tempo esgotado, exigindo intervenção manual.
  • Devido a falhas internas de hardware, os fragmentos em nós de dados antigos podem ficar presos durante uma migração. (Observação: dependendo do problema de hardware, seu cluster também pode não se recuperar automaticamente.) Se o cluster não se recuperar automaticamente, o OpenSearch Service executará scripts de autorrecuperação para retornar os nós a um estado íntegro. A perda do volume raiz de um nó pode impedir que o OpenSearch Service responda, e um grupo do Auto Scaling substitui automaticamente os nós defeituosos. Se o volume do EBS anexado a um nó ficar inativo, será necessária uma intervenção manual para substituir o volume do EBS. Para ajudar a identificar quais fragmentos ainda estão operando a partir de um conjunto mais antigo de nós, use os seguintes comandos de API: cat allocation API, cat nodes API, ou cat shards API.
  • A realocação de um fragmento travado devido a armazenamento livre insuficiente no novo conjunto de nós. Esse problema ocorre quando há novos dados entrando no cluster durante um processo de implantação azul/verde.
    Nota: Uma implantação azul/verde não é acionada se o OpenSearch Service detectar menos espaço do que o necessário para uma migração de dados bem-sucedida.
  • Uma realocação de fragmentos presos causada por fragmentos que são fixados em um conjunto de nós mais antigo. Para garantir que os fragmentos não sejam fixados em nenhum nó antes que uma alteração de configuração seja feita, confira a configuração do índice. Ou confira se seu cluster possui um bloco de gravação causado por alta pressão de memória JVM ou pouco espaço em disco.

Para identificar quais fragmentos de índice estão travados e as configurações de índice correspondentes, use os seguintes comandos:

curl -X GET "ENDPOINT/_cluster/allocation/explain?pretty"
curl -X GET "ENDPOINT/INDEX_NAME/_settings?pretty"

Nas configurações de índice, confira se alguma dessas configurações aparece:

{
    "index.routing.allocation.require._name": "NODE_NAME" (OR)
    "index.blocks.write": true
    }

Se você observar “index.routing.allocation.require._name”: “NODE_NAME” nas configurações do seu índice, remova a configuração assim:

curl -X PUT "ENDPOINT/INDEX_NAME/_settings?pretty" H 'Content-Type: application/json' -d '
{
"index.routing.allocation.require._name": null
}'

Para obter mais informações, consulte Filtragem de alocação de fragmento em nível de índice no site do Elasticsearch.

Se você observar “index.blocks.write”: true em suas configurações de índice, o cluster terá um bloco de gravação. O bloco de gravação é provavelmente causado por alta pressão de memória JVM ou pouco espaço em disco. Certifique-se de resolver esses problemas antes de implementar outras dicas de solução de problemas. Para obter mais informações sobre como conduzir uma resolução de problemas para essa exceção, consulte ClusterBlockException.

Observação: se seu cluster ficar preso no estado “Processando” por mais de 24 horas, ele precisará de intervenção manual. Além disso, se você não tiver alterado a configuração, mas a contagem de nós for maior do que o esperado, pode haver um patch de software em andamento.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?