Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 14418|Відповідь: 2

Стан кластера Elasticsearch(ES): червоний Аналіз відмов

[Копіювати посилання]
Опубліковано 2021-1-27 23:08:07 | | | |
Використовуючи панель 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% даних, індекс буде переведений у режим лише читання.

CentOS рахує розмір кожної папки і шукає великі файли
https://www.itsvse.com/thread-9542-1-1.html
Перегляньте всю інформацію про налаштування індексу для відвідування:Вхід за гіперпосиланням видно., як показано на рисунку нижче:



"знання" : {
    "налаштування" : {
      "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-*" безпосередньо, стан стає здоровим, як показано на рисунку нижче:



(Кінець)




Попередній:CentOS рахує розмір кожної папки і шукає великі файли
Наступний:Стан кластера Elasticsearch(ES): жовтий (6 з 7) статус
 Орендодавець| Опубліковано 2021-6-15 11:22:58 |
-- Переглянути всі статуси індексів

Вхід за гіперпосиланням видно.

-- Переглянути індекси зі статусом червоного
Вхід за гіперпосиланням видно.

Документації:Вхід за гіперпосиланням видно.

 Орендодавець| Опубліковано 2023-4-17 12:12:32 |
Elasticsearch (ES) не записує дані у розв'язок несправності
https://www.itsvse.com/thread-10568-1-1.html
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com