Przywracanie Elasticsearch 7 po awarii zasilania

Przetłumaczone automatycznie z angielskiego. Przeczytaj oryginał

Jeśli doszło do awarii zasilania albo po prostu bezmyślnie wcisnąłeś przycisk restartu na swojej maszynie, istnieje duża szansa, że pojawią się problemy z klastrem. Mój ma tylko jeden węzeł, więc nie ma redundancji. Jeśli stracę indeksy, dane przepadną. Na szczęście uruchomienie Elasticsearch i czerwone wskaźniki niekoniecznie oznaczają utratę danych. Niedawno przeszedłem tę ścieżkę. Log mówił, że brakuje primary shardów. W takim przypadku trzeba sprawdzić, czy te indeksy są wylistowane:

Bash
curl -s 'localhost:9200/_cat/indices?v'

W wyniku tego polecenia szukaj czerwonych statusów. Wewnętrzne mechanizmy mają regułę opóźnienia, więc co minutę sprawdzaj, czy liczba maleje. Jeśli nie, zamiast „indices” wpisz „allocations” i możesz zobaczyć nieprzypisane indeksy. Teraz możesz spróbować tego:

Text
url -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
    "transient" : {
        "cluster.routing.allocation.enable" : "all"
    }
}
'

Być może przywróci to alokację. Innym czynnikiem awarii może być mało wolnego miejsca. Trzeba utrzymywać je powyżej 15%. Jeśli masz więcej niż jeden węzeł, sprawdź, czy jest dostępny i działa.

Wersja Markdown

Wszystkie treści na tej stronie są udostępniane na licencji Uznanie autorstwa – Użycie niekomercyjne – Bez utworów zależnych 4.0 Międzynarodowe (CC BY-NC-ND 4.0). Cytuj jako: Michał Sobczak, „Przywracanie Elasticsearch 7 po awarii zasilania”, 14 sierpnia 2022, https://michalasobczak.pl/pl/posts/recovering-elasticsearch-7-after-power-outage.html