Ir para o conteúdo

Como resolvo o erro de snapshot manual no meu cluster do OpenSearch Service?

6 minuto de leitura
0

Quando eu restauro um snapshot manual do meu cluster do Amazon OpenSearch Service e tento registrar ou acessar um repositório, recebo um erro.

Resolução

Se você não concluir o processo de migração correto para sua versão do OpenSearch Service, receberá um erro. Para solucionar o problema, conclua a resolução do erro que você recebeu.

403 Unauthorized error

Se você ativou o controle de acesso refinado (fine-grained access contro, FGAC) em seu domínio do OpenSearch Service, poderá receber uma mensagem de erro semelhante à seguinte ao criar um snapshot:

"type: security_exception,
reason: no permissions for [cluster:admin/repository/put] and User [name=arn:aws:iam::012345678912:user/username, backend_roles=[], requestedTenant=null]
status: 403"

O erro anterior ocorre quando você não fornece as credenciais corretas.

Para resolver esse problema, execute o seguinte comando curl para especificar um parâmetro username:password ao tirar um snapshot manual:

curl -XPUT -u 'username:password' 'opensearch-domain-endpoint/_snapshot/snapshot-repository-name/snapshot-name'

Observação: Para ativar o FGAC para seu domínio do OpenSearch Service, você deve ser um superusuário. É possível usar seu nome e senha de superusuário ou definir um perfil do AWS Identity and Access Management (AWS IAM) como superusuário. Ao acessar o snapshot do seu cluster, especifique suas credenciais de superusuário ou perfil do IAM. Se você especificar um perfil do IAM, o perfil do IAM deverá usar o AWS Signature versão 4 para assinar as solicitações HTTP. Para obter mais informações sobre o FGAC e os perfis do IAM, consulte Criação e gerenciamento de domínios do OpenSearch Service.

Você também deve mapear o perfil manage_snapshots para um perfil do IAM e registrar um repositório de snapshots. O perfil manage_snapshots deve ter permissões IAM:PassRole para assumir o perfil do IAM. Para obter mais informações, consulte Pré-requisitos.

illegal_state_exception

Se você usar um bucket do Amazon Simple Storage Service (Amazon S3) para fazer snapshots manuais para vários domínios, receberá uma mensagem de erro semelhante à seguinte:

"type: illegal_state_exception
reason: Can't get text on a FIELD_NAME at 1:1838
status: 500"

Para resolver esse problema, crie um novo bucket do Amazon S3 e tire um snapshot manual ou limpe todos os dados do bucket existente.

Repository_missing_exception

Antes de tirar um snapshot manual do índice, você deve registrar um repositório de snapshots manuais com o OpenSearch Service. Você também deve atender aos pré-requisitos do snapshot manual.

Se você não registrou seu repositório de snapshots, o nome do repositório está incorreto ou você não atendeu aos pré-requisitos, você receberá a seguinte mensagem de erro:

"type: repository_missing_exception
reason: [snapshot-repository-name] missing
status: 404"

Concurrent_snapshot_execution_exception

Se você tentar criar um snapshot quando outro snapshot estiver em andamento, você receberá o seguinte erro:

type: concurrent_snapshot_execution_exception
reason: [snapshot-repository-name:snapshot-name] a snapshot is already running"

Para verificar se outro snapshot está em andamento, execute o seguinte comando curl:

curl -XGET 'opensearch-domain-endpoint/_snapshot/_status'

Se um snapshot já estiver em andamento, aguarde a conclusão do snapshot atual. Se seu snapshot estiver travado, verifique seu histórico de snapshots de hora em hora. Para obter mais informações, consulte Por que não consigo excluir um índice nem atualizar o meu cluster do OpenSearch Service?

Snapshot_restore_exception

Se você migrar dados de um cluster on-premises para um domínio do OpenSearch Service, poderá receber a seguinte mensagem de erro:

type: snapshot_restore_exception
reason: [manual-snapshot-repo:my-manual-snapshot1/HPOcIJryTj6a6GJvyP79bw] the snapshot was created with Elasticsearch version [6.8.0] which is higher than the version of this node [6.7.0]
status: 500”

Quando você cria um snapshot de um cluster existente que é executado em uma versão do Amazon Elasticsearch diferente do OpenSearch Service, ocorre o erro anterior. Para resolver esse problema, atualize sua versão do Elasticsearch. Ou use a operação da API de reindexação remota para migrar seus índices.

Se você ativou o FGAC do domínio e tentou restaurar os índices a partir do snapshot, talvez receba a seguinte mensagem de erro:

"type: security_exception
reason: no permissions for [] and User [name=username, backend_roles=[], requestedTenant=]
status: 403"

Para resolver o erro anterior, execute o seguinte comando curl para excluir os índices de segurança:

curl -XPOST -u 'username:password' "https://opensearch-domain-endpoint/_snapshot/snapshot-repository/snapshot-id/_restore" -H 'Content-Type: application/json' -d'
{  
"indices": "-.opensearch*,-.opendistro*,-.kibana*"
}'

Observação: No comando anterior, substitua os valores de exemplo pelos seus valores.

a_w_s_security_token_service_exception

Se o perfil do IAM associado ao seu snapshot manual não estabelecer uma relação de confiança estabelecida para es.amazonaws.com, você receberá o seguinte erro de exceção:

"type: repository_exception
reason: [es_01082021_repo] Could not determine repository generation from root blobs
type: i_o_exception
reason: Exception when listing blobs by prefix [index-]
type: a_w_s_security_token_service_exception
reason: a_w_s_security_token_service_exception: User: arn:aws:sts::332315457451:assumed-role/cp-sts-grant-role/swift-us-west-2-prod-679203657591 is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::679203657591:role/ES_Backup_Role (Service: AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; Request ID: 36d09b93-d94f-457e-8fa5-b0a50ba436c3)
status: 500"

Para resolver esse problema, certifique-se de especificar o perfil do IAM associado ao snapshot manual ao registrar o repositório de snapshot. Se você não tiver um perfil do IAM, crie um.

Além disso, verifique se a relação de confiança para o perfil do IAM especifica o OpenSearch Service na declaração Principal.

Exemplo de relação de confiança:

{
    "Version": "2012-10-17",
    "Statement": [{
        "Sid": "",
        "Effect": "Allow",
        "Principal": {
            "Service": "es.amazonaws.com"
        },
        "Action": "sts:AssumeRole"
    }]
}

Estado PARCIAL do snapshot

Um snapshot entra em um estado PARCIAL pelos seguintes motivos:

Se o snapshot estiver no estado PARCIAL, o OpenSearch Service não armazenou dados de um fragmento. É possível restaurar dados de um snapshot parcial, mas deve usar snapshots anteriores para restaurar os índices ausentes. Para verificar se seu cluster está em estado PARCIAL, verifique seu histórico de snapshots.

Problema de classe de armazenamento do Amazon S3 Glacier

Se você estiver armazenando um snapshot restaurado em uma das classes de armazenamento do Amazon S3 Glacier, não aplique uma regra do Amazon S3 Glacier Lifecycle ao bucket. Os snapshots manuais não são compatíveis com as classes de armazenamento do S3 Glacier. Se você aplicar uma política do S3 Glacier Lifecycle ao bucket, mova os objetos que fazem a transição para o bucket de volta para uma classe de armazenamento padrão.

Depois de mover os objetos de volta, é possível restaurá-los a partir dos snapshots. Para obter mais informações, consulte Pré-requisitos.

Informações relacionadas

Como resolver o erro no Amazon OpenSearch Service?"cannot restore index [.kibana]"

Obtenção manual de snapshots

AWS OFICIALAtualizada há 6 meses