Gli indici di tracciamento ElasticSuite causano problemi con gli Elasticsearch
Questo articolo parla del problema dei problemi di memoria Elasticsearch causati dagli indici di tracciamento prodotti dal plug-in ElasticSuite.
Prodotti e versioni interessati
Le versioni di ElasticSuite precedenti alla versione 2.8.0 non sono in grado di pulire periodicamente gli indici di tracciamento.
Le versioni di ElasticSuite precedenti alla 2.9.8 / 2.10.7 memorizzano gli indici di tracciamento negli indici giornalieri, il che provoca l’aumento del numero di indici aperti.
Problema
Se è installato il plug-in di terze parti ElasticSuite, potrebbero verificarsi problemi di memoria Elasticsearch e il servizio di Elasticsearch potrebbe bloccarsi a causa degli indici di tracciamento ElasticSuite. I sintomi includono:
- L'Elasticsearch si blocca senza errori di memoria.
- Durante l'esecuzione di un comando di integrità
curl -m1 localhost:9200/_cluster/health?pretty
ocurl -m1 elasticsearch.internal:9200/_cluster/health?pretty
(per gli account di avvio) sono presenti centinaia o migliaia diunassigned_shards
- Le prestazioni dell'Elasticsearch o del sito sono gravemente compromesse.
- "Nessun nodo attivo trovato nel cluster" in Elasticsearch errori di distribuzione o di registro.
- "Rifiuto dell'aggiornamento della mappatura a [<*>_ tracking_log_event _<*>]" in errori di distribuzione o di registro.
Causa
ElasticSuite dispone di una nuova funzione che crea indici di tracciamento. Questi indici di tracciamento registrano quali termini di ricerca sono più utilizzati, quali termini generano il maggior fatturato e quali termini portano a una pagina di nessun risultato in modo che i commercianti possano creare sinonimi per correggerli. Non sembra eliminare gli indici di tracciamento, quindi Elasticsearch esaurisce le risorse e si arresta in modo anomalo.
Soluzione
Aggiorna la versione di ElasticSuite per poter pulire periodicamente gli indici di tracciamento
Dopo aver aggiornato il plug-in ElasticSuite alla versione successiva alla 2.8.0, puoi configurare una pulizia periodica degli indici.
Vai a Archivi > Configurazione > Tracciamento > Configurazione globale > Ritardo conservazione
Il periodo di conservazione predefinito è di 365 giorni. Può ridurlo a 30 o 15 giorni.
Aggiorna la versione di ElasticSuite per utilizzare indici mensili invece di indici giornalieri
Dopo aver aggiornato il plug-in ElasticSuite alla versione > 2.9.8 / 2.10.7, gli indici di tracciamento saranno basati su base mensile.
Puoi comunque ridurre il periodo di conservazione:
Vai a Archivi > Configurazione > Tracciamento > Configurazione globale > Ritardo conservazione
Il periodo di conservazione predefinito è di 12 mesi (genererà 12 indici). Può ridurla a 3 o 6 mesi.
Utilizzare un processo cronologico per pulire i dati degli indici di tracciamento
Crea un processo cron per eliminare gli indici di tracciamento. Questo comando elimina gli indici creati nell'ultimo mese:
curl -XDELETE localhost:9200/<name in index> * **\_tracking\_log** * _$(date
+'%Y%m' -d 'last month')*
Se desideri eliminare gli indici con una frequenza temporale impostata, crea un processo cron facendo riferimento ai seguenti articoli nella documentazione per sviluppatori: