Pomocí panelu elasticsearch-head k připojení k Elasticsearch(ES) jsem našel následující chybu:
Zdraví clusteru: červené (24 z 31)
Pro zobrazení informací o stavu navštivte:Přihlášení k hypertextovému odkazu je viditelné.
{ "cluster_name" : "elasticsearch", "stav": "červený", "timed_out" : nepravda, "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
} "Stav" : "Červený"Stav je Prázdný
Plugin hlavy bude zobrazen v různých barvách
1) Zelená – nejzdravější stav, což znamená, že jsou dostupné všechny primární a replikové střepy; 2) Žlutá – všechny primární střepy jsou dostupné, ale některé repliky nejsou k dispozici; 3) Červená – Některé primární střepy nejsou dostupné. (V tuto chvíli lze při vykonání dotazu ještě najít některá data, takže je lepší je rychle vyřešit.) )
Pro zobrazení stavu indexu přistupujte:Přihlášení k hypertextovému odkazu je viditelné.
.monitoring-es-6-2021.01.22 0 p NEPŘIŘAZENÉ ALLOCATION_FAILED Co je to nepřiřazené shardování?
Vysvětlení v jedné větě: Nepřidělené střepy. Při spuštění ES zjistíte, že clusterové střepy se po neustálém obnovování přes Head plugin objeví fialově, šedě a nakonec zeleně.
Proč dochází k nepřiřazenému shardingu?
Pokud například nemůžete alokovat shardy, přelocujete počet replikových shardů vzhledem k počtu uzlů v clusteru, shardy zůstávají NEPŘIŘAZENÉ. Chybový kód je: ALLOCATION_FAILED.
Možné příčiny problémů s nepřiřazeným shardingem?
1) INDEX_CREATED: Nebylo alokováno kvůli API, které index vytvořilo. 2) CLUSTER_RECOVERED: Nebylo přiděleno kvůli úplnému zotavení clusteru. 3) INDEX_REOPENED: Nealokováno kvůli otevření nebo uzavření indexu. 4) DANGLING_INDEX_IMPORTED: Nebylo přiděleno kvůli výsledku dovozu visícího indexu. 5) NEW_INDEX_RESTORED: Nebylo alokováno kvůli návratu k novému indexu. 6) EXISTING_INDEX_RESTORED: Nealokováno kvůli návratu k uzavřenému indexu. 7) REPLICA_ADDED: Nebylo alokováno kvůli explicitnímu přidání replik střepů. 8) ALLOCATION_FAILED: Nebylo alokováno kvůli selhání alokace shardu. 9) NODE_LEFT: Uzel nesoucí shard opouští shluk a není přidělen. 10) ZNOVUINICIALIZOVÁNO: Kvůli nealokovaným shardům při přechodu ze startu na inicializaci (např. shardování s kopiemi stínových stínů). 11) REROUTE_CANCELLED: Deallocate v důsledku explicitního příkazu unresail. 12) REALLOCATED_REPLICA: Zjistit, že je pro použití kalibrováno lepší umístění repliky, což vede ke zrušení alokace a zrušení existujících kopií.
Přihlaste se na server a prohlédněte si logy Elasticsearch (ES) následovně:
Elasticsearch generuje spoustu logů, všechny v adresáři ES_HOME/logs. Výchozí úroveň logování je INFO. Poskytuje to mírné informace, ale je navrženo tak, aby nezahltilo vaše záznamy. Přihlášení k hypertextovému odkazu je viditelné.
Existuje velké množství chyb, například:
[2021-01-21T03:33:26,435] [VAROVÁNÍ] [o.e.x.m.e.l.LocalExporter] [A_OefhJ] neočekávaná chyba při indexování monitorovacího dokumentu
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] na org.elasticsearch.action.bulk.TransportBulkAction$BulkOperation$1.onFailure(TransportBulkAction.java:409) ~[elasticsearch-6.5.2.jar:6.5.2] at 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] at 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] at 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] Způsobeno: org.elasticsearch.cluster.block.ClusterBlockException: blokováno: [FORBIDDEN/12/index pouze pro čtení / dovolit smazání (api)]; at 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] ... Dalších 21
Po analýze bylo zjištěno, že je to kvůliDiskové místo serveru, kde se ES nachází, je příliš nízké, jakmile je jakýkoli index s jedním nebo více úlomky přiřazen uzlu na disku, který ukládá více než 95 % dat, bude index nucen přejít do režimu pouze pro čtení.
Zobrazit všechny informace o nastavení indexu, které stojí za návštěvou:Přihlášení k hypertextovému odkazu je viditelné., jak je znázorněno na obrázku níže:
"znalosti" : { "nastavení" : { "index" : { "number_of_shards" : "3", "bloky" : { "read_only_allow_delete" : "pravda" }, "provided_name" : "poznání", "creation_date" : "1576206251443", "number_of_replicas" : "0", "uuid" : "yeSIP_otQo6JQ8ooRdr8hA", "verze" : { "stvořil" : "6050299" } } } } read_only_allow_deletePokud je tento atribut pravdivý, ES index umožňuje pouze čtení a mazání dat, neumožňuje přidávání ani úpravu dat
řešení
Po vyřešení problému s diskem, rozbalte nebo smažte nevyžádané soubory, postupujte podle níže uvedeného návodu.
Nastavte read_only_allow_delete na false
Získejte možnost odeslat požadavek na put pomocí elasticsearch-head:Přihlášení k hypertextovému odkazu je viditelné., jak je znázorněno na obrázku níže:
To stále nemůže odstranit Redův zdravotní stav,Smažte data ".monitoring-es-6-*" přímo, stav se stává zdravým, jak je znázorněno na obrázku níže:
(Konec)
|