Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Perché il mio cluster Servizio OpenSearch di Amazon è rosso o giallo?
Il mio cluster Amazon OpenSearch Service ha lo stato di cluster rosso o giallo.
Breve descrizione
La scheda Monitoraggio nella console di OpenSearch Service indica lo stato dell'indice meno integro del cluster. Uno stato del cluster mostrato in rosso non indica necessariamente che il cluster sia inattivo. Questo stato indica che almeno una partizione primaria e le relative repliche non sono allocati a un nodo. Se lo stato del cluster è giallo, le partizioni primarie per tutti gli indici vengono allocati ai nodi del cluster. Tuttavia, uno o più frammenti di replica non sono allocati a nessuno dei nodi.
Nota: Non riconfigurare il dominio finché non risolvi per la prima volta lo stato del cluster rosso. Se tenti di riconfigurare il dominio quando lo stato del cluster è rosso, questo potrebbe rimanere bloccato in stato Elaborazione in corso. Per ulteriori informazioni sui cluster bloccati nello stato Elaborazione in corso, consulta Perché il mio dominio del servizio OpenSearch è bloccato nello stato Elaborazione in corso?
Per i motivi per cui questa situazione può verificarsi, consulta Stato del cluster rosso.
Nota: In alcuni casi, potresti riuscire a risolvere lo stato del cluster rosso eliminando e quindi ripristinando l'indice da un'istantanea automatica.
Per i motivi per cui il tuo cluster può assumere uno stato giallo, consulta Stato del cluster giallo.
Nota: Se lo stato del cluster giallo non si risolve da solo, puoi aggiornare le impostazioni dell'indice o reindirizzare manualmente le partizioni non assegnate. Se lo stato del cluster giallo non si risolve automaticamente, identifica e risolvi la causa principale. Per evitare lo stato giallo del cluster, applica le migliori pratiche sull'integrità del cluster.
Soluzione
Identifica la causa delle partizioni non assegnate
Puoi utilizzare un runbook di Automazione AWS Systems Manager o comandi curl manuali per identificare la causa delle partizioni non assegnate.
Usa il runbook di automazione
Accedi a AWSSupport-TroubleshootOpenSearchRedYellowCluster nella console di AWS Systems Manager. Quindi, segui questi passaggi per configurare l'automazione.
Usa i comandi curl
Per identificare i frammenti non assegnati, effettua le seguenti operazioni:
-
Elenca la partizione non assegnata:
$ curl -XGET 'domain-endpoint/_cat/shards?h=index,shard,prirep,state,unassigned.reason' | grep UNASSIGNED
-
Recupera i dettagli del motivo per cui la partizione non è assegnata:
$ curl -XGET 'domain-endpoint/_cluster/allocation/explain?pretty' -H 'Content-Type:application/json' -d'{ "index": "<index name>", "shard": <shardId>, "primary": <true or false> }
-
(Facoltativo) Per lo status di cluster rosso, elimina gli indici di preoccupazione e identifica e affronta la causa principale:
curl -XDELETE 'domain-endpoint/<index names>'
-
Quindi, identifica gli snapshot disponibili e ripristina gli indici da uno snapshot:
curl -XGET 'domain-endpoint/_snapshot?pretty'
Per lo stato di cluster giallo, affronta la causa principale in modo che le partizioni vengano assegnate.
Risoluzione dei problemi relativi allo stato del cluster rosso o giallo
Nodi insufficienti da allocare alle partizioni
Una partizione di replica non verrà assegnato allo stesso nodo della partizione primaria. Un cluster a nodo singolo con partizione di replica viene sempre inizializzato con lo stato di cluster giallo. I cluster a nodo singolo vengono inizializzati in questo modo perché non ci sono altri nodi disponibili a cui OpenSearch Service può assegnare una replica.
Esiste anche un limite predefinito di "1.000" per l'impostazione cluster.max_shards_per_node per OpenSearch Service versioni 7.x e successive. È consigliabile mantenere l'impostazione cluster.max_shards_per_node sul valore predefinito di "1000". Se si impostano i filtri di assegnazione partizioni per controllare il modo in cui OpenSearch Service assegna le partizioni, la partizione può diventare non assegnata perché non dispone di un numero sufficiente di nodi filtrati. Per evitare questa carenza di nodi, aumenta il numero di nodi. Assicurati che il numero di repliche per ogni partizione primario sia inferiore al numero di nodi di dati. È inoltre possibile ridurre il numero di frammenti di replica. Per ulteriori informazioni, consulta Dimensionamento dei domini di OpenSearch Service e Demistificazione dell'assegnazione delle partizioni di OpenSearch Service.
Spazio su disco insufficiente o inclinazione del disco
Se lo spazio su disco non è sufficiente, il cluster può inserire uno stato di integrità rosso o giallo. Lo spazio su disco deve essere sufficiente per contenere le partizioni prima che OpenSearch Service li distribuisca.
Per verificare la quantità di spazio di archiviazione disponibile per ogni nodo del cluster, utilizza la seguente sintassi:
$ curl domain-endpoint/_cat/allocation?v
Per ulteriori informazioni sui problemi relativi allo spazio di archiviazione, consulta Come faccio a risolvere i problemi relativi allo spazio di archiviazione insufficiente nel mio dominio OpenSearch Service?
Una forte inclinazione del disco può anche causare problemi di spazio di archiviazione insufficiente per alcuni nodi di dati. Se decidi di riassegnare dei frammenti, questi possono non essere assegnati durante la distribuzione delle partizioni. Per risolvere il problema, consulta Come faccio a riequilibrare la distribuzione di partizioni irregolari nel mio cluster del servizio OpenSearch?
Le impostazioni di assegnazione delle partizioni basate su disco possono comportare anche partizioni non assegnate. Ad esempio, se il parametro cluster.routing.allocation.disk.watermark.low è impostato su 50 GB, la quantità di spazio su disco specificata deve essere disponibile per l'assegnazione delle partizioni.
Per verificare le attuali impostazioni di allocazione delle partizioni basate sul disco, utilizza la seguente sintassi:
$ curl -XGET domain-endpoint/_cluster/settings?include_defaults=true&flat_settings=true
Per risolvere i problemi di spazio su disco, prendi in considerazione i seguenti approcci:
- Elimina tutti gli indici indesiderati per i cluster gialli e rossi.
- Elimina gli indici rossi per i cluster rossi
- Aumenta il volume EBS.
- Aggiungi altri nodi di dati.
Nota: Non apportare modifiche alla configurazione del tuo cluster quando lo stato di integrità è rosso. Se tenti di riconfigurare il dominio quando lo stato del cluster è rosso, questo potrebbe rimanere bloccato in stato Elaborazione in corso.
Elevata pressione di memoria JVM
Ogni allocazione di partizioni utilizza CPU, spazio heap e risorse su disco e di rete. Livelli costantemente elevati di pressione della memoria JVM potrebbero portare a un'allocazione degli shard non riuscita. Ad esempio, se la pressione della memoria JVM supera il 95%, viene attivato un interruttore automatico principale della memoria. Il thread di allocazione viene quindi annullato, lasciando alle partizioni non assegnate.
Per risolvere questo problema, riduci prima il livello di pressione della memoria JVM. Dopo aver ridotto la pressione della memoria JVM, prendi in considerazione questi suggerimenti aggiuntivi per riportare il tuo cluster a uno stato di integrità verde:
- Aumenta il valore predefinito per i tentativi della partizione da "5" o superiore.
- Disattiva e attiva la partizione di replica.
- Riprova manualmente le partizione non assegnati.
Esempio di API per aumentare il valore di riprova:
PUT <index-name>/_settings{ "index.allocation.max_retries" : <value> }
Per ulteriori informazioni sulla riduzione della pressione sulla memoria JVM, consulta Come faccio a risolvere i problemi relativi alla pressione elevata sulla memoria JVM sul cluster del servizio OpenSearch?
Guasto del nodo
Quando il cluster presenta un errore di un nodo, le partizioni allocate a un nodo non vengono assegnati. Quando non sono disponibili partizioni di replica per un determinato indice, anche un errore di un singolo nodo può causare lo stato di integrità rosso. Usa due partizioni di replica e un'implementazione multi-AZ per proteggere il tuo cluster dalla perdita di dati dovuta a guasti hardware.
Se tutti gli indici hanno una partizione di replica, un errore di un singolo nodo può far sì che il cluster entri temporaneamente in uno stato di integrità giallo. Se il tuo cluster entra temporaneamente in uno stato di integrità giallo, OpenSearch Service verrà ripristinato automaticamente non appena il nodo sarà nuovamente integro. In alternativa, OpenSearch Service verrà ripristinato quando le partizioni vengono assegnate a un nuovo nodo.
Controlla i parametri di Amazon CloudWatch per confermare i guasti dei nodi. Per ulteriori informazioni sull'identificazione di un errore del nodo, consulta Errori dei nodi cluster.
Nota: È inoltre consigliabile assegnare una partizione di replica per ogni indice o utilizzare nodi primari dedicati e attivare la consapevolezza della zona. Per ulteriori informazioni, consulta Affrontare gli errori sul sito Web di Elasticsearch.
Superato il numero massimo di tentativi
In OpenSearch Service, il cluster non deve superare il limite di tempo massimo (5.000 ms) o il numero di tentativi (5) per l'allocazione delle partizioni. Se il cluster ha raggiunto le soglie massime, è necessario attivare manualmente un'allocazione delle partizioni. Per attivare manualmente un'allocazione delle partizioni, disattiva e riattiva le partizioni di replica per i tuoi indici.
Una modifica alla configurazione del cluster può anche attivare l'allocazione delle partizioni. Per ulteriori informazioni sull'allocazione delle partizioni, consulta Ogni partizione merita una casa sul sito Elasticsearch.
Nota: Non è consigliabile attivare manualmente l'allocazione delle partizioni se il cluster ha un carico di lavoro elevato. Se rimuovi tutte le repliche da un indice, l'indice deve basarsi solo sulle partizioni primarie. Quando un nodo fallisce, il cluster passa allo stato di integrità rosso perché le partizioni primarie non vengono assegnate.
Per disattivare una partizione di replica, aggiorna il valore number_of_replicas a "0":
$ curl -XPUT 'domain-endpoint/<indexname>/_settings' -H 'Content-Type: application/json' -d'{ "index" : { "number_of_replicas" : 0 } }
Inoltre, verifica che l'impostazione index.auto_expand_replicas sia impostata su "false". Quando il cluster torna allo stato verde, puoi reimpostare il valore index.number_of_replicas sul valore desiderato per attivare l'allocazione delle partizioni di replica. Se l'allocazione delle partizioni ha esito positivo, il cluster entrerà in uno stato di integrità verde.
Le migliori pratiche sanitarie dei cluster
Per risolvere lo stato del cluster giallo o rosso, prendi in considerazione le seguenti best practice:
- Imposta un allarme Amazon CloudWatch consigliato per AutomatedSnapshotFailure. Con l'allarme, puoi assicurarti di avere a disposizione un'istantanea per ripristinare gli indici da quando il cluster entra in rosso.
- Se il tuo cluster è sottoposto a un carico di lavoro intenso e prolungato, ridimensiona il cluster. Per ulteriori informazioni sul dimensionamento del cluster, consulta Come faccio ad aumentare un dominio del servizio OpenSearch?
- Monitora l'utilizzo del disco, la pressione della memoria JVM e l'utilizzo della CPU e assicurati che non superino le soglie impostate. Per ulteriori informazioni, consulta Allarmi CloudWatch consigliati e Parametri dei cluster.
- Assicurati che tutti le partizioni primarie dispongano di partizioni di replica per proteggerti dai guasti dei nodi.
Per ulteriori informazioni, consulta le best practice operative per Amazon OpenSearch Service.

Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 4 anni fa
- Perché OpenSearch Dashboards si trovano nello stato rosso nel mio dominio Amazon OpenSearch Service?AWS UFFICIALEAggiornata 4 anni fa
- AWS UFFICIALEAggiornata 4 anni fa