Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 14418|Odpowiedź: 2

Zdrowie klastra Elasticsearch(ES): czerwony Analiza awarii

[Skopiuj link]
Opublikowano 2021-1-27 23:08:07 | | | |
Korzystając z panelu elasticsearch-head do połączenia z Elasticsearch(ES), znalazłem następujący błąd:

Zdrowie klastra: czerwone (24 z 31)


Aby zobaczyć informacje o statusie, odwiedź:Logowanie do linku jest widoczne.

{
  "cluster_name" : "elasticsearch",
  "status" : "czerwony",
  "timed_out": fałsz,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards": 24,
  "active_shards": 24,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 7,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number": 77.41935483870968
}
"Status" : "Czerwony"Status to Pusty

Wtyczka głowy będzie wyświetlana w różnych kolorach

1) Zielony – najzdrowszy stan, co oznacza, że dostępne są wszystkie odłamki pierwotne i repliki;
2) Żółty – dostępne są wszystkie odłamki podstawowe, ale niektóre odłamki replik nie są dostępne;
3) Czerwony – Niektóre odłamki główne nie są dostępne. (W tym momencie podczas wykonywania zapytania można jeszcze znaleźć pewne dane, więc lepiej rozwiązać je szybko.) )


Aby zobaczyć status indeksu, wejdź:Logowanie do linku jest widoczne.

.monitoring-es-6-2021.01.22 0 p NIEPRZYPISANY ALLOCATION_FAILED
Czym jest nieprzypisany sharding?

Wyjaśnienie w jednym zdaniu: Nieprzydzielone odłamki.
Po uruchomieniu ES zauważysz, że odłamki klastra będą wyglądać na fioletowy, szary i na końcu zielony po ciągłym odświeżaniu przez wtyczkę Head.


Dlaczego dochodzi do nieprzypisanego shardingu?

Jeśli nie możesz przydzielić odłamków, na przykład, przealokowałeś liczbę replik odłamków względem liczby węzłów w klastrze, odłamki pozostają NIEPRZYPISANE.
Kod błędu to: ALLOCATION_FAILED.


Możliwe przyczyny problemów z nieprzypisanym shardingiem?

1) INDEX_CREATED: Nie przydzielony ze względu na API, które utworzyło indeks.
2) CLUSTER_RECOVERED: Nie przydzielono z powodu pełnego odzyskiwania klastra.
3) INDEX_REOPENED: Nie przydzielone z powodu otwarcia lub zamknięcia indeksu.
4) DANGLING_INDEX_IMPORTED: Nie przydzielane ze względu na efekt importu indeksu wiszącego.
5) NEW_INDEX_RESTORED: Nie przydzielane z powodu powrotu do nowego indeksu.
6) EXISTING_INDEX_RESTORED: Nie alokowane z powodu powrotu do zamkniętego indeksu.
7) REPLICA_ADDED: Nie przydzielono z powodu wyraźnego dodania replik odłamków.
8) ALLOCATION_FAILED: Nie przydzielono z powodu awarii alokacji odłamków.
9) NODE_LEFT: Węzeł niosący odłamek opuszcza klaster i nie jest przydzielany.
10) PONOWNA INICJALIZACJA: Z powodu niealokowanych fragmentów podczas przechodzenia od początku do inicjalizacji (np. shardowanie kopiami cienia cieniowego).
11) REROUTE_CANCELLED: Deallocate w wyniku wyraźnego rozkazu odwołania (unresail).
12) REALLOCATED_REPLICA: Ustal, że lepsza lokalizacja repliki jest skalibrowana do użycia, co skutkuje anulowaniem istniejącej alokacji kopii i jej odalokowania.


Zaloguj się na serwer i przeglądaj logi Elasticsearch (ES) w następujący sposób:

Elasticsearch generuje mnóstwo logów, wszystkie w katalogu ES_HOME/logs. Domyślny poziom logowania to INFO. Dostarcza umiarkowanych informacji, ale jest zaprojektowany tak, by nie przeciążać Twoich logów.
Logowanie do linku jest widoczne.



Występuje wiele błędów, takich jak:

[2021-01-21T03:33:26,435] [OSTRZEŻENIE] [o.e.x.m.e.l.LocalExporter] [A_OefhJ] nieoczekiwany błąd podczas indeksowania dokumentu monitorującego
org.elasticsearch.xpack.monitoring.exporter.ExportException: ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];]
        at org.elasticsearch.xpack.monitoring.exporter.local.LocalBulk.lambda$throwExportException$2(LocalBulk.java:128) ~[?:?]
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_222]
        at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_222]
        at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) ~[?:1.8.0_222]
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_222]
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_222]
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:1.8.0_222]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:1.8.0_222]
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_222]
        at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) ~[?:1.8.0_222]
        at org.elasticsearch.xpack.monitoring.exporter.local.LocalBulk.throwExportException(LocalBulk.java:129) ~[?:?]
        at org.elasticsearch.xpack.monitoring.exporter.local.LocalBulk.lambda$doFlush$0(LocalBulk.java:111) ~[?:?]
        at org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:60) ~[elasticsearch-6.5.2.jar:6.5.2]
        na org.elasticsearch.action.support.ContextPreservingActionListener.onResponse(ContextPreservingActionListener.java:43) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.support.TransportAction$1.onResponse(TransportAction.java:85) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.support.TransportAction$1.onResponse(TransportAction.java:81) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.bulk.TransportBulkAction$BulkRequestModifier.lambda$wrapActionListenerIfNeeded$0(TransportBulkAction.java:607) ~[elasticsearch-6.5.2.jar :6.5.2]
        at org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:60) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.bulk.TransportBulkAction$BulkOperation$1.finishHim(TransportBulkAction.java:414) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.bulk.TransportBulkAction$BulkOperation$1.onFailure(TransportBulkAction.java:409) ~[elasticsearch-6.5.2.jar:6.5.2]
        na org.elasticsearch.action.support.TransportAction$1.onFailure(TransportAction.java:91) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.support.replication.TransportReplicationAction$ReroutePhase.finishAsFailed(TransportReplicationAction.java:901) ~[elasticsearch-6.5.2.jar :6.5.2]
        at org.elasticsearch.action.support.replication.TransportReplicationAction$ReroutePhase.handleBlockException(TransportReplicationAction.java:824) ~[ elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.support.replication.TransportReplicationAction$ReroutePhase.handleBlockExceptions(TransportReplicationAction.java:812) ~[ elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.support.replication.TransportReplicationAction$ReroutePhase.doRun(TransportReplicationAction.java:710) ~[elasticsearch-6.5.2.jar:6.5.2]
        na org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.support.replication.TransportReplicationAction.doExecute(TransportReplicationAction.java:169) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.support.replication.TransportReplicationAction.doExecute(TransportReplicationAction.java:97) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:167) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.apply(SecurityActionFilter.java:126) ~[?:?]
        at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:165) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:139) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:81) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.bulk.TransportBulkAction$BulkOperation.doRun(TransportBulkAction.java:384) ~[elasticsearch-6.5.2.jar:6.5.2]
        na org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.bulk.TransportBulkAction.executeBulk(TransportBulkAction.java:496) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.bulk.TransportBulkAction.executeIngestAndBulk(TransportBulkAction.java:243) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.bulk.TransportBulkAction.doExecute(TransportBulkAction.java:169) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.bulk.TransportBulkAction.lambda$processBulkIndexIngestRequest$4(TransportBulkAction.java:549) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.ingest.IngestService$4.doRun(IngestService.java:417) [elasticsearch-6.5.2.jar:6.5.2]
        na org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:723) [elasticsearch-6.5.2.jar:6.5.2]
        na org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-6.5.2.jar:6.5.2]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_222]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_222]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]
Spowodowane przez: org.elasticsearch.cluster.block.ClusterBlockException: zablokowane przez: [FORBIDDEN/12/index read-only / allow delete (api)];
        na org.elasticsearch.cluster.block.ClusterBlocks.indexBlockedException(ClusterBlocks.java:183) ~[elasticsearch-6.5.2.jar:6.5.2]
        at org.elasticsearch.action.support.replication.TransportReplicationAction$ReroutePhase.handleBlockExceptions(TransportReplicationAction.java:810) ~[ elasticsearch-6.5.2.jar:6.5.2]
        ... Jeszcze 21


Po analizie stwierdzono, że jest to dlatego, żeMiejsce na dysku serwera, na którym znajduje się ES, jest zbyt mało, gdy dowolny indeks z jednym lub więcej odłamkami zostanie przypisany węzłowi na dysku, który przechowuje więcej niż 95% danych, indeks zostanie zmuszony do przejścia w tryb tylko do odczytu.

CentOS liczy każdy rozmiar folderu i szuka dużych plików
https://www.itsvse.com/thread-9542-1-1.html
Zobacz wszystkie ustawienia indeksu, które warto odwiedzić:Logowanie do linku jest widoczne., jak pokazano na poniższym rysunku:



"wiedza" : {
    "settings" : {
      "index" : {
        "number_of_shards" : "3",
        "bloki" : {
          "read_only_allow_delete" : "prawda"
        },
        "provided_name" : "wiedza",
        "creation_date" : "1576206251443",
        "number_of_replicas" : "0",
        "uuid": "yeSIP_otQo6JQ8ooRdr8hA",
        "version" : {
          "stworzył" : "6050299"
        }
      }
    }
  }
read_only_allow_deleteGdy ten atrybut jest prawdziwy, indeks ES pozwala jedynie na odczyt i usuwanie danych, a nie na dodawanie ani modyfikowanie danych


rozwiązanie

Po rozwiązaniu problemu z dyskiem, rozwiń lub usuń pliki śmieciowe, skorzystaj z poniższego poradnika.

Ustaw read_only_allow_delete na false

Dostaniemy możliwość wysłania żądania sprzedaży za pomocą elasticsearch-head:Logowanie do linku jest widoczne., jak pokazano na poniższym rysunku:

{
"uznany": prawdziwe
}





To wciąż nie może zniszczyć stanu zdrowia Reda,Usuń bezpośrednio dane ".monitoring-es-6-*", stan staje się zdrowy, jak pokazano na poniższym rysunku:



(Koniec)




Poprzedni:CentOS liczy każdy rozmiar folderu i szuka dużych plików
Następny:Zdrowie klastra Elasticsearch(ES): żółty (6 z 7)
 Ziemianin| Opublikowano 2021-6-15 11:22:58 |
-- Zobacz wszystkie statusy indeksu

Logowanie do linku jest widoczne.

-- Wyświetlanie indeksów o statusie czerwonym
Logowanie do linku jest widoczne.

Dokumentacja:Logowanie do linku jest widoczne.

 Ziemianin| Opublikowano 2023-4-17 12:12:32 |
Elasticsearch (ES) nie zapisuje danych do rozwiązania błędu
https://www.itsvse.com/thread-10568-1-1.html
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com