Aggiornamento dei domini Amazon Service OpenSearch - OpenSearch Servizio Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Aggiornamento dei domini Amazon Service OpenSearch

Nota

OpenSearch e gli aggiornamenti di versione di Elasticsearch differiscono dagli aggiornamenti del software di servizio. Per informazioni sull'aggiornamento del software di servizio per il dominio di OpenSearch servizio, consulta. Aggiornamenti del software di servizio in Amazon OpenSearch Service

Amazon OpenSearch Service offre aggiornamenti sul posto per i domini con versione OpenSearch 1.0 o successiva oppure Elasticsearch 5.1 o versione successiva. Se utilizzi servizi come Amazon Data Firehose o Amazon CloudWatch Logs per lo streaming di dati su OpenSearch Service, verifica che questi servizi supportino la versione più recente di prima della migrazione. OpenSearch

Percorsi di aggiornamento supportati

Attualmente, OpenSearch Service supporta i seguenti percorsi di aggiornamento:

Dalla versione Alla versione
OpenSearch 1.3 o 2. x

OpenSearch 2. x

La versione 2.3 presenta le seguenti modifiche importanti:

  • Il type parametro è stato rimosso da tutti gli endpoint OpenSearch API nella versione 2.0. Per ulteriori informazioni, consulta la sezione modifiche importanti.

  • Se il tuo dominio contiene indici (caldi o freddi) originariamente creati in Elasticsearch 6.8, tali indici non sono compatibili con la versione 2.3. UltraWarm OpenSearch

    Prima di eseguire l'aggiornamento alla versione 2.3, è necessario reindicizzare gli indici incompatibili. Per gli indici incompatibili UltraWarm o freddi, esegui la migrazione alla memorizzazione a caldo, reindicizza i dati e quindi esegui nuovamente la migrazione alla memorizzazione a caldo o a freddo. In alternativa, puoi eliminare questi indici se non sono più necessari.

    Se accidentalmente effettui l'upgrade del tuo dominio alla versione 2.3 senza aver prima eseguito questi passaggi, non sarai in grado di migrare gli indici incompatibili dal livello di archiviazione attuale. La tua unica opzione è quella di eliminarli.

OpenSearch 1. x OpenSearch 1. x
Elasticsearch 7.x

Ricerca elastica 7. x o 1. OpenSearch x

Importante

OpenSearch 1. x introduce numerose modifiche sostanziali. Per informazioni dettagliate, vedi Rinominazione del servizio OpenSearch di Amazon - Riepilogo delle modifiche.

Elasticsearch 6.8

Elasticsearch 7. x o 1. OpenSearch x

Importante

Elasticsearch 7.0 e OpenSearch 1.0 includono numerose modifiche sostanziali. Prima di iniziare un aggiornamento sul posto, consigliamo di scattare un'istantanea manuale del 6. dominio x, ripristinandolo su un test 7. x o OpenSearch 1. dominio x e utilizzo di quel dominio di test per identificare potenziali problemi di aggiornamento. Per informazioni sulle modifiche introdotte nella OpenSearch versione 1.0, vedereRinominazione del servizio OpenSearch di Amazon - Riepilogo delle modifiche.

Come Elasticsearch 6.x, gli indici possono contenere un solo tipo di mappatura, ma tale tipo ora deve essere denominato _doc. Di conseguenza, alcune API non richiedono più un tipo di mappatura nel corpo della richiesta (ad esempio l'API _bulk).

Per i nuovi indici, Elasticsearch 7, ospitato autonomamente. OpenSearch x e 1. x ha un numero di frammenti predefinito pari a uno. OpenSearch Domini di servizio su Elasticsearch 7. x e versioni successive mantengono il precedente valore predefinito di cinque.

Elasticsearch 6.x

Elasticsearch 6.x

Elasticsearch 5.6

Elasticsearch 6.x

Importante

Gli indici creati nella versione 6.x non supportano più tipi di mappatura diversi. Gli indici creati nella versione 5.x supportano ancora tipi di mappatura diversi quando sono ripristinati in un cluster 6.x. Controllare che il codice cliente crei un solo tipo di mappatura per indice.

Per ridurre al minimo i tempi di inattività durante l'aggiornamento da Elasticsearch 5.6 a 6. x, OpenSearch Service reindicizza l'.kibanaindice su.kibana-6, elimina.kibana, crea un alias denominato .kibana e associa il nuovo indice al nuovo alias.

Elasticsearch 5.x Elasticsearch 5.x

Il processo di aggiornamento è costituito da tre fasi:

  1. Controlli prima dell'aggiornamento: il OpenSearch servizio verifica la presenza di problemi che possono bloccare un aggiornamento e non procede alla fase successiva a meno che tali controlli non abbiano esito positivo.

  2. Istantanea: il OpenSearch servizio scatta un'istantanea del cluster OpenSearch o Elasticsearch e non procede al passaggio successivo a meno che l'istantanea non abbia esito positivo. Se l'aggiornamento non riesce, OpenSearch Service utilizza questa istantanea per ripristinare il cluster allo stato originale. Per ulteriori informazioni, consulta Impossibile eseguire il downgrade dopo l'aggiornamento.

  3. Aggiornamento: il OpenSearch servizio avvia l'aggiornamento, che può richiedere da 15 minuti a diverse ore per essere completato. OpenSearch I dashboard potrebbero non essere disponibili durante alcuni o tutti gli upgrade.

Avvio di un aggiornamento (console)

Il processo di aggiornamento è irreversibile e non può essere sospeso né annullato. Durante un aggiornamento, non è possibile apportare modifiche di configurazione al dominio. Prima di avviare un aggiornamento, controllare attentamente che si desidera continuare. Puoi usare queste stesse fasi per eseguire il controllo di pre-aggiornamento senza di fatto avviare un aggiornamento.

Se il cluster dispone di nodi master dedicati, OpenSearch gli aggiornamenti vengono completati senza tempi di inattività. In caso contrario, il cluster potrebbe non rispondere per alcuni secondi dopo l'aggiornamento mentre elegge un nodo master.

Per aggiornare un dominio a una versione successiva di Elasticsearch OpenSearch
  1. Acquisire uno snapshot manuale del dominio. Questa istantanea funge da backup che puoi ripristinare su un nuovo dominio se desideri tornare a utilizzare la versione precedente. OpenSearch

  2. Passare all'indirizzo https://aws.amazon.com e scegliere Sign In to the Console (Accedi alla console).

  3. In Analytics, scegli Amazon OpenSearch Service.

  4. Nel riquadro di navigazione, scegli il dominio da aggiornare in Domains (Domini).

  5. Scegli Operazioni, quindi Aggiorna.

  6. Scegli la versione a cui eseguire l'aggiornamento. Se stai effettuando l'aggiornamento a una OpenSearch versione, viene visualizzata l'opzione Abilita la modalità di compatibilità. Se abiliti questa impostazione, OpenSearch riporta la sua versione come 7.10 per consentire ai client OSS e ai plugin Elasticsearch OSS come Logstash di continuare a lavorare con Amazon Service. OpenSearch Puoi disattivare questa operazione in un secondo momento

  7. Seleziona Upgrade (Aggiorna).

  8. Controlla il campo Stato dominio nel pannello di controllo del dominio per monitorare lo stato dell'aggiornamento.

Avvio di un aggiornamento (CLI)

Puoi utilizzare le seguenti operazioni per identificare la versione corretta di OpenSearch Elasticsearch per il tuo dominio, avviare un aggiornamento sul posto, eseguire il controllo pre-aggiornamento e visualizzare lo stato di avanzamento:

  • get-compatible-versions (GetCompatibleVersions)

  • upgrade-domain (UpgradeDomain)

  • get-upgrade-status (GetUpgradeStatus)

  • get-upgrade-history (GetUpgradeHistory)

Per ulteriori informazioni, consulta il riferimento ai comandiAWS CLI e il riferimento all'API di Amazon OpenSearch Service.

Avvio di un aggiornamento (SDK)

Questo esempio utilizza il client Python di OpenSearchServicebasso livello di AWS SDK for Python (Boto) per verificare se un dominio è idoneo per l'aggiornamento a una versione specifica, lo aggiorna e controlla continuamente lo stato dell'aggiornamento.

import boto3 from botocore.config import Config import time # Build the client using the default credential configuration. # You can use the CLI and run 'aws configure' to set access key, secret # key, and default Region. DOMAIN_NAME = '' # The name of the domain to upgrade TARGET_VERSION = '' # The version you want to upgrade the domain to. For example, OpenSearch_1.1 my_config = Config( # Optionally lets you specify a Region other than your default. region_name='us-east-1' ) client = boto3.client('opensearch', config=my_config) def check_versions(): """Determine whether domain is eligible for upgrade""" response = client.get_compatible_versions( DomainName=DOMAIN_NAME ) compatible_versions = response['CompatibleVersions'] for i in range(len(compatible_versions)): if TARGET_VERSION in compatible_versions[i]["TargetVersions"]: print('Domain is eligible for upgrade to ' + TARGET_VERSION) upgrade_domain() print(response) else: print('Domain not eligible for upgrade to ' + TARGET_VERSION) def upgrade_domain(): """Upgrades the domain""" response = client.upgrade_domain( DomainName=DOMAIN_NAME, TargetVersion=TARGET_VERSION ) print('Upgrading domain to ' + TARGET_VERSION + '...' + response) time.sleep(5) wait_for_upgrade() def wait_for_upgrade(): """Get the status of the upgrade""" response = client.get_upgrade_status( DomainName=DOMAIN_NAME ) if (response['UpgradeStep']) == 'UPGRADE' and (response['StepStatus']) == 'SUCCEEDED': print('Domain successfully upgraded to ' + TARGET_VERSION) elif (response['StepStatus']) == 'FAILED': print('Upgrade failed. Please try again.') elif (response['StepStatus']) == 'SUCCEEDED_WITH_ISSUES': print('Upgrade succeeded with issues') elif (response['StepStatus']) == 'IN_PROGRESS': time.sleep(30) wait_for_upgrade() def main(): check_versions() if __name__ == "__main__": main()

Errori nella risoluzione dei problemi di convalida

Quando avvii un aggiornamento di una versione OpenSearch o di Elasticsearch, OpenSearch Service esegue innanzitutto una serie di controlli di convalida per garantire che il tuo dominio sia idoneo per un aggiornamento. Se uno di questi controlli non riesce, si riceve una notifica contenente i problemi specifici che è necessario correggere prima di aggiornare il dominio. Per un elenco dei potenziali problemi e dei passaggi per risolverli, consulta Risoluzione degli errori di convalida.

Risoluzione dei problemi relativi all'aggiornamento

Aggiornamenti locali richiedono domini sani. Il dominio potrebbe essere non idoneo per un aggiornamento o non completare l'aggiornamento per diversi motivi. La tabella riportata di seguito mostra i problemi più comuni.

Problema Descrizione
Plugin opzionale non supportato

Quando si aggiorna un dominio con plug-in opzionali, OpenSearch Service aggiorna automaticamente anche i plug-in. Pertanto, la versione di destinazione del dominio deve supportare anche questi plugin opzionali. Se nel dominio è installato un plug-in opzionale che non è disponibile per la versione di destinazione, la richiesta di aggiornamento ha esito negativo.

Troppe partizioni per nodo OpenSearch, oltre a 7. x versioni di Elasticsearch hanno un'impostazione predefinita di non più di 1.000 shard per nodo. Se un nodo del cluster corrente supera questa impostazione, il OpenSearch servizio non consente l'aggiornamento. Consulta Limite massimo di partizioni superato per le opzioni di risoluzione dei problemi.
Dominio in elaborazione Il dominio è nel mezzo di una modifica di configurazione. Controlla l'idoneità dell'aggiornamento al termine dell'operazione.
Cluster in stato rosso Uno o più indici nel cluster sono in stato rosso. Per la risoluzione dei problemi, consulta Cluster in stato rosso.
Elevata percentuale di errori Il cluster restituisce un numero elevato di errori 5xx durante il tentativo di elaborazione delle richieste. Questo problema è in genere il risultato di un numero eccessivo di richieste di lettura o scrittura simultanee. Valuta la possibilità di ridurre il traffico verso il cluster o di eseguire il dimensionamento del dominio.
Split brain Split brain significa che il cluster contiene più nodi principali ed è stato diviso in due cluster che non verranno mai riuniti in modo autonomo. Puoi evitare lo split brain utilizzando il numero consigliato di nodi master dedicati. Per risolvere un problema di split brain, contatta AWS Support.
Impossibile trovare nodo master OpenSearch Il servizio non riesce a trovare il nodo principale del cluster. Se il dominio utilizza il Multi-AZ, un errore nella zona di disponibilità potrebbe aver causato la perdita del quorum da parte del cluster e la conseguente incapacità di eleggere un nuovo nodo master. Se il problema non si risolve automaticamente, contatta AWS Support.
Troppe attività in sospeso Il nodo master si trova in condizioni di carico elevato e presenta numerose attività in sospeso. Valuta la possibilità di ridurre il traffico verso il cluster o di eseguire il dimensionamento del dominio.
Volume di archiviazione compromesso Il volume del disco di uno o più nodi non funziona correttamente. Questo problema si verifica spesso insieme ad altri problemi, come un'elevata percentuale di errori o troppe attività in sospeso. Se si verifica in isolamento e non si risolve automaticamente, contatta AWS Support.
Problema chiave KMS La chiave KMS utilizzata per crittografare il dominio non è accessibile o manca. Per ulteriori informazioni, consultare Monitoraggio dei domini che crittografano dati a riposo.
Snapshot in corso Il dominio sta attualmente acquisendo una snapshot. Controlla l'idoneità dell'aggiornamento al termine della snapshot. Verifica anche che puoi elencare repository snapshot manuali, elencare snapshot all'interno di tali repository e acquisire snapshot manuali. Se OpenSearch il Servizio non è in grado di verificare se un'istantanea è in corso, gli aggiornamenti possono avere esito negativo.
Timeout o errore snapshot Il pre-aggiornamento snapshot richiede troppo tempo o non è riuscito. Verifica l'integrità del cluster e riprova. Se il problema persiste, contatta AWS Support.
Indici incompatibili Uno o più indici sono incompatibili con la versione di destinazione. Questo problema può verificarsi se hai migrato gli indici da una versione precedente di Elasticsearch o Elasticsearch. OpenSearch Reindicizzare gli indici e riprovare.
Elevato utilizzo del disco L'utilizzo del disco per il cluster supera il 90%. Elimina i dati o ricalibra il dominio e riprova.
Elevato utilizzo JVM L'utilizzo della memoria JVM è superiore al 75%. Riduci il traffico verso il cluster o ricalibra il dominio e riprova.
OpenSearch Problema con gli alias dei dashboard .dashboardsè già configurato come alias ed è mappato su un indice incompatibile, probabilmente uno di una versione precedente di Dashboards. OpenSearch Reindicizza e riprova.
Stato rosso di Dashboards OpenSearch Lo stato del pannello di controllo è rosso. Provare a usare Dashboards al termine dell'aggiornamento. Se lo stato rosso persiste, risolvilo manualmente e riprova.
Compatibilità tra cluster

È possibile eseguire l'aggiornamento solo se viene mantenuta la compatibilità tra cluster tra i domini di origine e di destinazione dopo l'aggiornamento. Durante il processo di aggiornamento, vengono identificate tutte le connessioni non compatibili. Per procedere, aggiornare il dominio remoto o eliminare le connessioni non compatibili. Tenere presente che se la replica è attiva sul dominio, non è possibile riprenderla dopo aver eliminato la connessione.

Altro problema relativo OpenSearch al servizio di assistenza Problemi relativi al OpenSearch Servizio stesso potrebbero far sì che il dominio venga visualizzato come non idoneo per un aggiornamento. Se nessuna delle condizioni precedenti si applica al dominio e il problema persiste per più di un giorno, contatta AWS Support.

Utilizzo di uno snapshot per migrare i dati

Gli aggiornamenti sul posto sono il modo più semplice, veloce e affidabile per aggiornare un dominio a una versione successiva OpenSearch o di Elasticsearch. Gli snapshot sono un'ottima opzione se occorre migrare da una versione precedente alla 5.1 di Elasticsearch o si desidera migrare a un cluster completamente nuovo.

La tabella seguente mostra come utilizzare le istantanee per migrare i dati verso un dominio che utilizza una versione diversa o di Elasticsearch. OpenSearch Per informazioni su come acquisire e ripristinare gli snapshot, consulta Creazione di istantanee dell'indice in Amazon Service OpenSearch .

Dalla versione Alla versione Processo di migrazione
OpenSearch 1.3 o 2. x OpenSearch 2. x
  1. Consulta le ultime modifiche apportate alla versione OpenSearch 2.3 per vedere se è necessario apportare modifiche agli indici o alle applicazioni.

  2. Crea un'istantanea manuale della versione 1.3 o 2. dominio x.

  3. Crea un 2. dominio x che è una versione superiore alla versione 1.3 o 2 originale. dominio x.

  4. Ripristina l'istantanea dal dominio originale al 2. dominio x. Durante l'operazione, potrebbe essere necessario ripristinare l'.opensearchindice con un nuovo nome:

    POST _snapshot/<repository-name>/<snapshot-name>/_restore { "indices": "*", "ignore_unavailable": true, "rename_pattern": ".opensearch", "rename_replacement": ".backup-opensearch" }

    Quindi è possibile reindicizzare .backup-opensearch sul nuovo dominio e configurarlo come alias su .opensearch. Tieni presente che la chiamata _restore REST non include include_global_state perché l'impostazione predefinita in _restore è false. Di conseguenza, il dominio di test non includerà alcun modello di indice e non avrà lo stato completo del backup.

  5. Se non si ha più bisogno del dominio originale, eliminarlo. In caso contrario, verranno addebitati i costi per il dominio.

OpenSearch 1. x OpenSearch 1. x
  1. Crea un'istantanea manuale del file 1. dominio x.

  2. Crea un 1. dominio x che è una versione superiore a quella originale 1. dominio x.

  3. Ripristina l'istantanea dal dominio originale al nuovo 1. dominio x. Durante l'operazione, potrebbe essere necessario ripristinare l'.opensearchindice con un nuovo nome:

    POST _snapshot/<repository-name>/<snapshot-name>/_restore { "indices": "*", "ignore_unavailable": true, "rename_pattern": ".opensearch", "rename_replacement": ".backup-opensearch" }

    Quindi è possibile reindicizzare .backup-opensearch sul nuovo dominio e configurarlo come alias su .opensearch. Tieni presente che la chiamata _restore REST non include include_global_state perché l'impostazione predefinita in _restore è false. Di conseguenza, il dominio di test non includerà alcun modello di indice e non avrà lo stato completo del backup.

  4. Se non si ha più bisogno del dominio originale, eliminarlo. In caso contrario, verranno addebitati i costi per il dominio.

Elasticsearch 6.x o 7.x OpenSearch 1. x
  1. Consulta le ultime modifiche apportate alla OpenSearch versione 1.0 per vedere se è necessario apportare modifiche agli indici o alle applicazioni.

  2. Creare uno snapshot manuale del dominio Elasticsearch 7.x o 6.x.

  3. Crea un 1. OpenSearch dominio x.

  4. Ripristina l'istantanea dal dominio Elasticsearch al dominio. OpenSearch Durante l'operazione, potrebbe essere necessario ripristinare l'.elasticsearchindice con un nuovo nome:

    POST _snapshot/<repository-name>/<snapshot-name>/_restore { "indices": "*", "ignore_unavailable": true, "rename_pattern": ".elasticsearch", "rename_replacement": ".backup-opensearch" }

    Quindi è possibile reindicizzare .backup-opensearch sul nuovo dominio e configurarlo come alias su .elasticsearch. Tieni presente che la chiamata _restore REST non include include_global_state perché l'impostazione predefinita in _restore è false. Di conseguenza, il dominio di test non includerà alcun modello di indice e non avrà lo stato completo del backup.

  5. Se non si ha più bisogno del dominio originale, eliminarlo. In caso contrario, verranno addebitati i costi per il dominio.

Elasticsearch 6.x Elasticsearch 7.x
  1. Esaminare le modifiche importanti in 7.0 per vedere se è necessario adeguare gli indici o le applicazioni.

  2. Creare una snapshot manuale del dominio 6.x.

  3. Creare un dominio 7.x.

  4. Ripristinare la snapshot dal dominio originale al dominio 7.x. Durante l'operazione, è probabile che sia necessario ripristinare l'indice .opensearch con un nuovo nome:

    POST _snapshot/<repository-name>/<snapshot-name>/_restore { "indices": "*", "ignore_unavailable": true, "rename_pattern": ".elasticsearch", "rename_replacement": ".backup-elasticsearch" }

    Quindi è possibile reindicizzare .backup-elasticsearch sul nuovo dominio e configurarlo come alias su .elasticsearch. Tieni presente che la chiamata _restore REST non include include_global_state perché l'impostazione predefinita _restore è false. Di conseguenza, il dominio di test non includerà alcun modello di indice e non avrà lo stato completo del backup.

  5. Se non si ha più bisogno del dominio originale, eliminarlo. In caso contrario, verranno addebitati i costi per il dominio.

Elasticsearch 6.x Elasticsearch 6.8
  1. Creare una snapshot manuale del dominio 6.x.

  2. Creare un dominio 6.8.

  3. Ripristinare lo snapshot dal dominio originale nel dominio 6.8.

  4. Se non si ha più bisogno del dominio originale, eliminarlo. In caso contrario, verranno addebitati i costi per il dominio.

Elasticsearch 5.x Elasticsearch 6.x
  1. Esaminare le modifiche importanti in 6.0 per vedere se è necessario adeguare gli indici o le applicazioni.

  2. Creare una snapshot manuale del dominio 5.x.

  3. Creare un dominio 6.x.

  4. Ripristinare la snapshot dal dominio originale al dominio 6.x.

  5. Se non si ha più bisogno del dominio 5.x, eliminarlo. In caso contrario, verranno addebitati i costi per il dominio.

Elasticsearch 5.x Elasticsearch 5.6
  1. Creare una snapshot manuale del dominio 5.x.

  2. Creare un dominio 5.6.

  3. Ripristinare la snapshot dal dominio originale al dominio 5.6.

  4. Se non si ha più bisogno del dominio originale, eliminarlo. In caso contrario, verranno addebitati i costi per il dominio.

Elasticsearch 2.3 Elasticsearch 6.x

Gli snapshot di Elasticsearch 2.3 non sono compatibili con la versione 6.x. Per migrare i dati direttamente da 2.3 a 6.x, è necessario ricreare manualmente gli indici nel nuovo dominio.

In alternativa, è possibile seguire i passaggi da 2.3 a 5.x in questa tabella, eseguire le operazioni _reindex nel nuovo dominio 5.x per convertire gli indici 2.3 negli indici 5.x e seguire i passaggi da 5.x a 6.x.

Elasticsearch 2.3 Elasticsearch 5.x
  1. Esaminare le modifiche importanti in 5.0 per vedere se è necessario adeguare gli indici o le applicazioni.

  2. Creare una snapshot manuale del dominio 2.3.

  3. Creare un dominio 5.x.

  4. Ripristinare la snapshot dal dominio 2.3 al dominio 5.x.

  5. Se non si ha più bisogno del dominio 2.3, eliminarlo. In caso contrario, verranno addebitati i costi per il dominio.

Elasticsearch 1.5 Elasticsearch 5.x

Gli snapshot di Elasticsearch 1.5 non sono compatibili con la versione 5.x. Per migrare i dati da 1.5 a 5.x, è necessario ricreare manualmente gli indici nel nuovo dominio.

Importante

Le istantanee 1.5 sono compatibili con 2.3, ma i domini OpenSearch Service 2.3 non supportano l'_reindexoperazione. Poiché non è possibile reindicizzarli, gli indici originati in un dominio 1.5 non riescono a effettuare il ripristino dalle snapshot 2.3 a domini 5.x.

Elasticsearch 1.5 Elasticsearch 2.3
  1. Utilizzare il plugin di migrazione per scoprire se è possibile effettuare direttamente l'upgrade alla versione 2.3. Potrebbe essere necessario modificare i dati prima della migrazione.

    1. In un browser Web, aprire http://domain-endpoint/_plugin/migration/.

    2. Scegliere Run checks now (Esegui controlli).

    3. Esaminare i risultati e, se necessario, seguire le istruzioni per modificare i dati.

  2. Creare una snapshot manuale del dominio 1.5.

  3. Creare un dominio 2.3.

  4. Ripristinare la snapshot dal dominio 1.5 al dominio 2.3.

  5. Se non si ha più bisogno del dominio 1.5, eliminarlo. In caso contrario, verranno addebitati i costi per il dominio.