Spårningsindex för ElasticSuite orsakar problem med Elasticsearch
I den här artikeln behandlas problemet med minnesproblem i Elasticsearch som orsakas av att man håller reda på index som skapats med pluginprogrammet ElasticSuite.
Berörda produkter och versioner
ElasticSuite-versioner före 2.8.0 kan inte regelbundet rensa upp spårningsindex.
ElasticSuite-versioner före 2.9.8 / 2.10.7 lagrar spårningsindex i dagliga index, vilket gör att antalet öppna index ökar.
Problem
Om ElasticSuite-pluginprogrammet från en annan leverantör är installerat kan du få minnesproblem i Elasticsearch och tjänsten Elasticsearch kan krascha på grund av ElasticSuite-spårningsindex. Symtomen är bland annat:
- Elasticsearch kraschar utan minnesfel.
- När du kör ett hälsokommando
curl -m1 localhost:9200/_cluster/health?pretty
ellercurl -m1 elasticsearch.internal:9200/_cluster/health?pretty
(för startkonton) finns det hundratals eller tusentalsunassigned_shards
- Elasticsearch eller webbplatsens prestanda försämras avsevärt.
- "Inga aktiva noder hittades i klustret" i Elasticsearch-distributionen eller loggfel.
- "Avvisar mappningsuppdatering till [<*>_ tracking_log_event _<*>]" i distributions- eller loggfel.
Orsak
ElasticSuite har en ny funktion som skapar spårningsindex. Dessa spårningsindex registrerar vilka söktermer som används mest, vilket innebär att omsättningen blir störst och vilka termer som leder till att ingen resultatsida visas så att säljarna kan skapa synonymer för att åtgärda dem. Spårningsindexen verkar inte tas bort, så Elasticsearch har slut på resurser och krascher.
Lösning
Uppgradera din version av Elastic Suite så att du kan rensa spårningsindex med jämna mellanrum
När du har uppgraderat ElasticSuite-pluginen till version högre än 2.8.0 kan du konfigurera en regelbunden rensning av index.
Gå till Lagrar > Konfiguration > Spårning > Global konfiguration > Kvarhållningsfördröjning
Standardkvarhållningsperioden är 365 dagar. Du kan minska den till 30 eller 15 dagar.
Uppgradera din version av Elastic Suite så att du kan använda månatliga index istället för dagliga index
När du har uppgraderat ElasticSuite-pluginen till version > 2.9.8/2.10.7, kommer spärrindex att baseras på månadsvis uppföljning.
Du kan fortfarande minska kvarhållningsperioden:
Gå till Lagrar > Konfiguration > Spårning > Global konfiguration > Kvarhållningsfördröjning
Standardkvarhållningsperioden är 12 månader (genererar 12 index). Du kan minska den till 3 eller 6 månader.
Använd ett cronjob för att rensa spårningsindexdata
Skapa ett cron-jobb för att ta bort spårningsindex. Med det här kommandot tas index som skapats den senaste månaden bort:
curl -XDELETE localhost:9200/<name in index> * **\_tracking\_log** * _$(date
+'%Y%m' -d 'last month')*
Om du vill ta bort index med en viss tidsfrekvens skapar du ett cron-jobb genom att läsa följande artiklar i vår utvecklardokumentation: