Por que meu cluster do Amazon OpenSearch Service está com o status vermelho ou amarelo?

10 minuto de leitura
0

Meu cluster do Amazon OpenSearch Service está em um status de cluster vermelho ou amarelo.

Breve descrição

A guia Monitoring (Monitoramento) no console do OpenSearch Service indica o status do índice menos íntegro em seu cluster. Um status de cluster que mostra um status vermelho não significa que seu cluster está inativo. Esse status indica que pelo menos um fragmento primário e suas réplicas não estão alocados para um nó. Se o status do cluster mostrar um status amarelo, os fragmentos primários de todos os índices serão alocados aos nós do cluster. No entanto, um ou mais fragmentos de réplica não são alocados para nenhum dos nós.

Observação: não reconfigure seu domínio até resolver primeiro o status do cluster vermelho. Se você tentar reconfigurar seu domínio quando ele estiver em um status de cluster vermelho, ele poderá ficar preso no estado “Processing” (Processando). Para obter mais informações sobre clusters presos em um estado “Processing” (Processando), consulte Por que meu domínio do OpenSearch Service está preso no estado “Processing” (Processando)?

Seu cluster pode inserir um status vermelho pelos seguintes motivos:

  • Várias falhas nos nós de dados
  • Uso de um fragmento corrompido ou vermelho para um índice
  • Alta pressão de memória da JVM ou utilização da CPU
  • Pouco espaço em disco ou distorção do disco
  • Não há fragmentos de réplica para o fragmento não atribuído

Observação: em alguns casos, talvez você consiga resolver o status do cluster vermelho excluindo e restaurando o índice a partir de um instantâneo automatizado.

Seu cluster pode inserir um status de integridade amarelo pelos seguintes motivos:

  • Criação de um novo índice
  • Não há nós suficientes para alocar nos fragmentos ou na distorção do disco
  • Alta pressão de memória JVM
  • Falha em um único nó
  • Excedeu o número máximo de tentativas de alocação de fragmentos
  • O número de fragmentos de réplica é maior do que o número de nós de dados
  • Implantação contínua em azul ou verde devido à realocação de fragmentos de dados

Observação: se o status do seu cluster amarelo não se resolver sozinho, você pode resolver o status atualizando as configurações do índice ou redirecionando manualmente os fragmentos não atribuídos. Se o status do seu cluster amarelo não se resolver automaticamente, identifique e solucione a causa raiz. Para evitar o status de cluster amarelo, aplique as melhores práticas de integridade do cluster.

Resolução

Identificar o motivo de seus fragmentos não atribuídos

Para identificar os fragmentos não atribuídos, execute as seguintes etapas:

1.    Liste o fragmento não atribuído:

$ curl -XGET 'domain-endpoint/_cat/shards?h=index,shard,prirep,state,unassigned.reason' | grep UNASSIGNED

2.    Recupere os detalhes do motivo pelo qual o fragmento não está atribuído:

$ curl -XGET 'domain-endpoint/_cluster/allocation/explain?pretty' -H 'Content-Type:application/json' -d'
{
     "index": "<index name>",
     "shard": <shardId>,
     "primary": <true or false>
}

3.    (Opcional) Para obter um status de cluster vermelho, exclua os índices de preocupação e identifique e resolva a causa raiz:

curl -XDELETE 'domain-endpoint/<index names>'

Em seguida, identifique os instantâneos disponíveis e restaure seus índices a partir de um instantâneo:

curl -XGET 'domain-endpoint/_snapshot?pretty'

Para o status de cluster amarelo, resolva a causa raiz para que seus fragmentos sejam atribuídos.

Solucionar problemas do status do seu cluster vermelho ou amarelo

Não há nós suficientes para alocar para os fragmentos

Um fragmento de réplica não será atribuído ao mesmo nó de seu fragmento primário. Um cluster de nó único com fragmentos de réplica sempre é inicializado com o status de cluster amarelo. Os clusters de nó único são inicializados dessa forma porque não há outros nós disponíveis aos quais o OpenSearch Service possa atribuir uma réplica.

Também há um limite padrão de “1.000" para a configuração cluster.max_shards_per_node para as versões 7.x e posteriores do OpenSearch Service. É uma prática recomendada manter a configuração cluster.max_shards_per_node com o valor padrão de “1000". Se você definir filtros de alocação de fragmentos para controlar como o OpenSearch Service aloca fragmentos, o fragmento pode ficar sem atribuição por não ter nós filtrados suficientes. Para evitar essa escassez de nós, aumente sua contagem de nós. Verifique se o número de réplicas para cada fragmento primário seja menor que o número de nós de dados. Você também pode reduzir o número de fragmentos de réplica. Para obter mais informações, consulte Dimensionamento de domínios do OpenSearch Service e Desmistificar a alocação de fragmentos do OpenSearch Service.

Pouco espaço em disco ou distorção do disco

Se não houver espaço em disco suficiente, seu cluster poderá inserir um status de integridade vermelho ou amarelo. Deve haver espaço em disco suficiente para acomodar fragmentos antes que o OpenSearch Service distribua os fragmentos.

Para verificar quanto espaço de armazenamento está disponível para cada nó em seu cluster, use a seguinte sintaxe:

$ curl domain-endpoint/_cat/allocation?v

Para obter mais informações sobre problemas de espaço de armazenamento, consulte Como soluciono problemas de pouco espaço de armazenamento no meu domínio do OpenSearch Service?

A forte distorção do disco também pode causar problemas de pouco espaço de armazenamento para alguns nós de dados. Se você decidir realocar qualquer fragmento, os fragmentos podem ficar sem atribuição durante a distribuição do fragmento. Para resolver esse problema, consulte Como rebalancear a distribuição desigual de fragmentos no meu cluster do OpenSearch Service?

As configurações de alocação de fragmentos com base em disco também podem resultar em fragmentos não atribuídos. Por exemplo, se a métrica cluster.routing.allocation.disk.watermark.low estiver definida como 50 GB, a quantidade especificada de espaço em disco deverá estar disponível para alocação de fragmentos.

Para verificar as configurações atuais de alocação de fragmentos com base em disco, use a seguinte sintaxe:

$ curl -XGET domain-endpoint/_cluster/settings?include_defaults=true&flat_settings=true

Para resolver seus problemas de espaço em disco, considere as seguintes abordagens:

  • Exclua quaisquer índices indesejados para clusters amarelos e vermelhos.
  • Excluir índices vermelhos para clusters vermelhos
  • Aumente o volume do EBS.
  • Adicione mais nós de dados.

Observação: evite fazer qualquer alteração de configuração em seu cluster quando ele estiver em estado de inoperância. Se você tentar reconfigurar seu domínio quando ele estiver em um status de cluster vermelho, ele poderá ficar preso no estado “Processing” (Processando).

Alta pressão de memória JVM

Cada alocação de fragmentos usa CPU, espaço na pilha e recursos de disco e rede. Níveis consistentemente altos de pressão de memória da JVM podem levar a uma falha na alocação de fragmentos. Por exemplo, se a pressão da memória JVM exceder 95%, um disjuntor principal da memória será acionado. Em seguida, o segmento de alocação é cancelado, deixando os fragmentos sem atribuição.

Para resolver esse problema, primeiro reduza o nível de pressão da memória da JVM. Depois que a pressão de memória da JVM for reduzida, considere estas dicas adicionais para trazer seu cluster de volta a um status de integridade verde:

  • Aumente o valor padrão de nova tentativa do fragmento de "5" ou superior.
  • Desative e ative o fragmento de réplica.
  • Repita manualmente os fragmentos não atribuídos.

Exemplo de API para aumentar o valor da nova tentativa:

PUT <index-name>/_settings
{
 "index.allocation.max_retries" : <value>
}

Para obter mais informações sobre como reduzir a pressão de memória da JVM, consulte Como soluciono problemas de alta pressão de memória da JVM no meu cluster do OpenSearch Service?

Falha no nó

Quando seu cluster sofre uma falha de nó, os fragmentos alocados para um nó não são atribuídos. Quando não há fragmentos de réplica disponíveis para um determinado índice, até mesmo uma falha em um único nó pode causar um estado de saúde vermelho. Ter dois fragmentos de réplica e uma implantação Multi-AZ protege seu cluster contra perda de dados durante uma falha de hardware.

Se todos os seus índices tiverem um fragmento de réplica, uma falha em um único nó pode fazer com que seu cluster insira temporariamente um status de integridade amarelo. Se seu cluster inserir temporariamente um status de integridade amarelo, o OpenSearch Service se recuperará automaticamente assim que o nó estiver saudável novamente. Ou, o OpenSearch Service se recuperará quando os fragmentos forem atribuídos a um novo nó.

Você pode confirmar falhas nos nós verificando suas métricas do Amazon CloudWatch. Para obter mais informações sobre como identificar uma falha de nó, consulte Nós de cluster com falha.

Observação: também é uma prática recomendada atribuir um fragmento de réplica para cada índice ou usar nós primários dedicados e ativar o reconhecimento de zona. Para obter mais informações, consulte Como lidar com falhas no site do Elasticsearch.

Excedeu o número máximo de tentativas

No OpenSearch Service, seu cluster não deve exceder o limite máximo de tempo (5.000 ms) ou o número de novas tentativas (5) para alocação de fragmentos. Se seu cluster atingiu os limites máximos, você deve acionar manualmente uma alocação de fragmentos. Para acionar manualmente uma alocação de fragmentos, desative e reative os fragmentos de réplica para seus índices.

Uma alteração na configuração do cluster também pode acionar a alocação de fragmentos. Para obter mais informações sobre alocação de fragmentos, consulte Todo fragmento merece um lar no site do Elasticsearch.

Observação: não é uma prática recomendada acionar manualmente a alocação de fragmentos se seu cluster tiver uma carga de trabalho pesada. Se você remover todas as suas réplicas de um índice, o índice deverá depender somente de fragmentos primários. Quando um nó falha, seu cluster entra em um status de integridade vermelho porque os fragmentos primários não são atribuídos.

Para desativar um fragmento de réplica, atualize o valor do number_of_replicas para “0":

$ curl -XPUT 'domain-endpoint/<indexname>/_settings' -H 'Content-Type: application/json' -d'
{
     "index" : {
          "number_of_replicas" : 0
     }
}

Além disso, verifique se a configuração index.auto_expand_replicas está definida como “false”. Quando seu cluster retornar ao status verde, você poderá definir o valor index.number_of_replicas novamente para o valor desejado para acionar a alocação de fragmentos de réplica. Se a alocação do fragmento for bem-sucedida, seu cluster entrará com um status de integridade verde.

Melhores práticas de saúde do cluster

Para resolver seu status de cluster amarelo ou vermelho, considere as seguintes práticas recomendadas:

  • Defina um alarme recomendado do Amazon CloudWatch para AutomatedSnapshotFailure. Com o alarme, você pode garantir que tenha um instantâneo disponível para restaurar seus índices quando o cluster entrar no status vermelho.
  • Se seu cluster estiver sob uma carga de trabalho pesada e sustentada, escale-o. Para obter mais informações sobre como escalar seu cluster, consulte Como posso escalar um domínio do OpenSearch Service?
  • Monitore o uso do disco, a pressão da memória da JVM e o uso da CPU e verifique se eles não estão excedendo os limites definidos. Para obter mais informações, consulte Alarmes de CloudWatch recomendados e Métricas de cluster.
  • Certifique-se de que todos os fragmentos primários tenham fragmentos de réplica para se proteger contra falhas nos nós.

Para obter mais informações, consulte Melhores práticas operacionais para o Amazon OpenSearch Service.

AWS OFICIAL
AWS OFICIALAtualizada há um ano