Salta al contenuto

Come posso risolvere l'errore relativo a uno snapshot manuale nel mio cluster del Servizio OpenSearch?

6 minuti di lettura
0

Quando ripristino uno snapshot manuale per il mio cluster del Servizio OpenSearch di Amazon e provo a registrare o accedere a un repository, ricevo un errore.

Risoluzione

Se non completi il processo di migrazione corretto per la versione del Servizio OpenSearch, ricevi un messaggio di errore. Per risolvere il problema, applica la procedura di risoluzione corrispondente all'errore che ricevi.

Errore 403 Unauthorized

Se hai attivato il controllo granulare degli accessi (FGAC) sul dominio del Servizio OpenSearch, potresti ricevere un messaggio di errore simile al seguente quando acquisisci uno 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"

L'errore precedente si verifica quando non fornisci le credenziali corrette.

Per risolvere il problema, esegui questo comando curl per specificare un parametro username:password quando acquisisci uno snapshot manuale:

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

Nota: per attivare FGAC per il dominio del Servizio OpenSearch, devi essere un superutente. Puoi utilizzare il nome e la password del superutente o impostare un ruolo AWS Identity and Access Management (AWS IAM) come superutente. Quando accedi allo snapshot del cluster, specifica le credenziali del superutente o il ruolo IAM. Se specifichi un ruolo IAM, il ruolo IAM deve utilizzare AWS Signature versione 4 per firmare le richieste HTTP. Per ulteriori informazioni sul controllo FGAC e sui ruoli IAM, consulta Creazione e gestione di domini del Servizio OpenSearch di Amazon.

Inoltre, devi [mappare il ruolo manage_snapshots su un ruolo IAM e registrare un repository di snapshot](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-snapshot-registerdirectory.html#managedomains-snapshot-register). Il ruolo manage_snapshots deve disporre delle autorizzazioni IAM:PassRole per assumere il ruolo IAM. Per ulteriori informazioni, consulta Prerequisiti.

illegal_state_exception

Se utilizzi un bucket Amazon Simple Storage Service (Amazon S3) per acquisire snapshot manuali per più domini, ricevi un messaggio di errore simile al seguente:

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

Per risolvere l'errore precedente, crea un nuovo bucket Amazon S3 ed acquisisci uno snapshot manuale o cancella tutti i dati dal bucket esistente.

Repository_missing_exception

Prima di acquisire uno snapshot manuale dell'indice, devi registrare un repository di snapshot manuali con il Servizio OpenSearch. Inoltre, devi soddisfare i prerequisiti per gli snapshot manuali.

Se non hai registrato un repository di snapshot, se il nome del repository non è corretto oppure se non soddisfi i prerequisiti, ricevi il seguente messaggio di errore:

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

Concurrent_snapshot_execution_exception

Se tenti di acquisire uno snapshot mentre è in corso un altro snapshot, ricevi il seguente messaggio di errore:

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

Per verificare se è in corso un altro snapshot, esegui questo comando curl:

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

Se è in corso uno snapshot, attendi il completamento dello snapshot corrente. Se lo snapshot è bloccato, controlla la cronologia degli snapshot orari. Per ulteriori informazioni, consulta Perché non riesco a eliminare un indice o aggiornare il mio cluster del Servizio OpenSearch di Amazon?

Snapshot_restore_exception

Se esegui la migrazione dei dati da un cluster locale a un dominio del Servizio OpenSearch, potresti ricevere il seguente messaggio di errore:

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 acquisisci uno snapshot di un cluster esistente che viene eseguito su una versione di Amazon Elasticsearch diversa dal Servizio OpenSearch, si verifica l'errore precedente. Per risolvere il problema, aggiorna la versione di Elasticsearch. Oppure utilizza l'operazione API remote reindex per eseguire la migrazione degli indici.

Se hai attivato il controllo FGAC del dominio e provi a ripristinare gli indici dallo snapshot, potresti ricevere il seguente messaggio di errore:

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

Per risolvere l'errore precedente, esegui questo comando curl per escludere gli indici di sicurezza:

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*"
}'

Nota: nel comando precedente, sostituisci gli esempi di valore con i tuoi valori.

a_w_s_security_token_service_exception

Se il ruolo IAM associato allo snapshot manuale non stabilisce una relazione di attendibilità per es.amazonaws.com, ricevi il seguente messaggio di errore:

"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"

Per risolvere il problema, assicurati di specificare il ruolo IAM associato allo snapshot manuale quando registri il repository di snapshot. Se non disponi di un ruolo IAM, creane uno.

Inoltre, verifica che la relazione di attendibilità per il ruolo IAM specifichi il Servizio OpenSearch nell'istruzione Principal.

Esempio di relazione di attendibilità:

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

Stato PARZIALE dello snapshot

Uno snapshot entra nello stato PARZIALE per i seguenti motivi:

Se lo snapshot è nello stato PARZIALE, il Servizio OpenSearch non ha memorizzato i dati da uno shard. Puoi ripristinare i dati da uno snapshot parziale, ma devi utilizzare snapshot precedenti per ripristinare gli indici mancanti. Per verificare se il cluster è nello stato PARZIALE, controlla la cronologia degli snapshot.

Problema relativo alla classe di archiviazione di Amazon S3 Glacier

Se archivi uno snapshot ripristinato in una delle classi di archiviazione di Amazon S3 Glacier, non applicare una regola del ciclo di vita di Amazon S3 Glacier al bucket. Gli snapshot manuali non supportano le classi di archiviazione di S3 Glacier. Se applichi una policy sul ciclo di vita di S3 Glacier al bucket, riporta gli oggetti che vengono trasferiti al bucket in una classe di archiviazione standard.

Dopo aver eseguito tale operazione, puoi ripristinare gli oggetti dagli snapshot. Per ulteriori informazioni, consulta Prerequisiti.

Informazioni correlate

Come si risolve l'errore nel Servizio OpenSearch di Amazon?"cannot restore index [.kibana]"

Acquisizione di snapshot manuali

AWS UFFICIALEAggiornata 8 mesi fa