Використовуючи панель elasticsearch-head для підключення до Elasticsearch(ES), я знайшов таку помилку:
Кластерне здоров'я: червоне (24 з 31)
Щоб переглянути інформацію про статус, відвідайте:Вхід за гіперпосиланням видно.
{ "cluster_name" : "elasticsearch", "статус" : "червоний", "timed_out" : неправда, "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
} "статус" : "червоний"Статус — порожній
Плагін голови буде відображатися різними кольорами
1) Зелений — найздоровіший стан, що означає, що всі первинні та репліки уламків доступні; 2) Жовтий — усі основні уламки доступні, але деякі репліки уламків відсутні; 3) Червоний — деякі основні уламки недоступні. (На даний момент деякі дані все ще можна знайти під час виконання запиту, тому краще вирішити його швидко.) )
Щоб переглянути статус індексу, перейдіть за посиланням:Вхід за гіперпосиланням видно.
.monitoring-es-6-2021.01.22 0 p НЕПРИЗНАЧЕНИЙ ALLOCATION_FAILED Що таке непризначене шардинг?
Пояснення в одному реченні: Невиділені уламки. При запуску ES, ви помітите, що осколки кластера виглядають фіолетовими, сірими і нарешті зеленими після постійного оновлення через плагін Head.
Чому відбувається непризначене шардинг?
Якщо ви не можете виділяти шарди, наприклад, якщо ви перерозподілили кількість реплік шардів для кількості вузлів у кластері, шарди залишаються НЕПРИЗНАЧЕНИМИ. Код помилки: ALLOCATION_FAILED.
Можливі причини проблем із невизначеним шардингом?
1) INDEX_CREATED: Не виділено через API, який створив індекс. 2) CLUSTER_RECOVERED: Не виділено через повне відновлення кластера. 3) INDEX_REOPENED: Не виділено через відкриття або закриття індексу. 4) DANGLING_INDEX_IMPORTED: Не виділено через результат імпорту висячого індексу. 5) NEW_INDEX_RESTORED: Не виділено через повернення до нового індексу. 6) EXISTING_INDEX_RESTORED: Не виділено через повернення до закритого індексу. 7) REPLICA_ADDED: Не виділено через явне додавання уламків реплік. 8) ALLOCATION_FAILED: Не виділено через невдачу розподілу шардів. 9) NODE_LEFT: Вузол, що несе осколок, залишає кластер і не виділяється. 10) ПЕРЕІНІЦІАЛІЗОВАНО: Через невиділені шарди при переході від початку до ініціалізації (наприклад, шардинг із тіньовими копіями). 11) REROUTE_CANCELLED: Розподілити локацію внаслідок явної команди на відновлення. 12) REALLOCATED_REPLICA: Визначити, що краще розташування копії калібровано для використання, що призводить до скасування існуючого розподілу копій та відсутності.
Увійдіть на сервер і перегляньте логи Elasticsearch (ES) наступним чином:
Elasticsearch виводить багато журналів, усі в каталозі ES_HOME/logs. Стандартний рівень логування — INFO. Він надає помірну інформацію, але розроблений так, щоб не перевантажувати ваші логи. Вхід за гіперпосиланням видно.
Існує велика кількість помилок, таких як:
[2021-01-21T03:33:26,435] [ПОПЕРЕДЖЕННЯ] [o.e.x.m.e.l.LocalExporter] [A_OefhJ] несподівана помилка під час індексації моніторингового документа
org.elasticsearch.xpack.monitoring.exporter.ExportException: ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];] на org.elasticsearch.xpack.monitoring.exporter.local.LocalBulk.lambda$throwExportException$2(LocalBulk.java:128) ~[?:?] за адресою 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] за адресою java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_222] за адресою 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] за адресою java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_222] за адресою java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) ~[?:1.8.0_222] на org.elasticsearch.xpack.monitoring.exporter.local.LocalBulk.throwExportException(LocalBulk.java:129) ~[?:?] на org.elasticsearch.xpack.monitoring.exporter.local.LocalBulk.lambda$doFlush$0(LocalBulk.java:111) ~[?:?] на org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:60) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.support.ContextPreservingActionListener.onResponse(ContextPreservingActionListener.java:43) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.support.TransportAction$1.onResponse(TransportAction.java:85) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.support.TransportAction$1.onResponse(TransportAction.java:81) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.bulk.TransportBulkAction$BulkRequestModifier.lambda$wrapActionListenerIfNeeded$0(TransportBulkAction.java:607) ~[elasticsearch-6.5.2.jar :6.5.2] на org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:60) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.bulk.TransportBulkAction$BulkOperation$1.finishHim(TransportBulkAction.java:414) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.bulk.TransportBulkAction$BulkOperation$1.onFailure(TransportBulkAction.java:409) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.support.TransportAction$1.onFailure(TransportAction.java:91) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.support.replication.TransportReplicationAction$ReroutePhase.finishAsFailed(TransportReplicationAction.java:901) ~[elasticsearch-6.5.2.jar :6.5.2] на org.elasticsearch.action.support.replication.TransportReplicationAction$ReroutePhase.handleBlockException(TransportReplicationAction.java:824) ~[ elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.support.replication.TransportReplicationAction$ReroutePhase.handleBlockExceptions(TransportReplicationAction.java:812) ~[ elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.support.replication.TransportReplicationAction$ReroutePhase.doRun(TransportReplicationAction.java:710) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) ~[elasticsearch-6.5.2.jar:6.5.2] За адресою org.elasticsearch.action.support.replication.TransportReplicationAction.doExecute(TransportReplicationAction.java:169) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.support.replication.TransportReplicationAction.doExecute(TransportReplicationAction.java:97) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:167) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.apply(SecurityActionFilter.java:126) ~[?:?] на org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:165) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:139) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:81) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.bulk.TransportBulkAction$BulkOperation.doRun(TransportBulkAction.java:384) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.bulk.TransportBulkAction.executeBulk(TransportBulkAction.java:496) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.bulk.TransportBulkAction.executeIngestAndBulk(TransportBulkAction.java:243) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.bulk.TransportBulkAction.doExecute(TransportBulkAction.java:169) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.bulk.TransportBulkAction.lambda$processBulkIndexIngestRequest$4(TransportBulkAction.java:549) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.ingest.IngestService$4.doRun(IngestService.java:417) [elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:723) [elasticsearch-6.5.2.jar:6.5.2] на 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] на java.lang.Thread.run(Thread.java:748) [?:1.8.0_222] Спричинено: org.elasticsearch.cluster.block.ClusterBlockException: заблоковано: [FORBIDDEN/12/index read-only / allow delete (api)]; на org.elasticsearch.cluster.block.ClusterBlocks.indexBlockedException(ClusterBlocks.java:183) ~[elasticsearch-6.5.2.jar:6.5.2] на org.elasticsearch.action.support.replication.TransportReplicationAction$ReroutePhase.handleBlockExceptions(TransportReplicationAction.java:810) ~[ elasticsearch-6.5.2.jar:6.5.2] ... Ще 21
Після аналізу було встановлено, що це черезДисковий простір сервера, на якому розташований ES, занадто обмежений, як тільки будь-який індекс з одним або кількома шардами буде призначений вузлу на диску, який зберігає понад 95% даних, індекс буде переведений у режим лише читання.
Перегляньте всю інформацію про налаштування індексу для відвідування:Вхід за гіперпосиланням видно., як показано на рисунку нижче:
"знання" : { "налаштування" : { "index" : { "number_of_shards" : "3", "блоки" : { "read_only_allow_delete" : "правда" }, "provided_name" : "знання", "creation_date" : "1576206251443", "number_of_replicas" : "0", "uuid" : "yeSIP_otQo6JQ8ooRdr8hA", "версія" : { "створено" : "6050299" } } } } read_only_allow_deleteКоли цей атрибут істинний, індекс ES дозволяє лише читати та видаляти дані і не дозволяє додавати чи змінювати дані
рішення
Після вирішення проблеми з диском розгорніть або видаліть спам-файли, дотримуйтесь інструкції нижче.
Встановити read_only_allow_delete на false
Отримайте можливість надіслати запит на put за допомогою elasticsearch-head:Вхід за гіперпосиланням видно., як показано на рисунку нижче:
{ "Підтверджено": правда
}
Це все одно не може позбутися стану здоров'я Реда,Видалити дані ".monitoring-es-6-*" безпосередньо, стан стає здоровим, як показано на рисунку нижче:
(Кінець)
|