En utilisant le panneau elasticsearch-head pour me connecter à Elasticsearch(ES), j’ai trouvé l’erreur suivante :
Santé du cluster : rouge (24 sur 31)
Pour consulter les informations de statut, visitez :La connexion hyperlientérée est visible.
{ « cluster_name » : « elasticsearch », « statut » : « rouge », « timed_out » : faux, « 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
} « statut » : « rouge »Le statut est Vide
Le plugin de tête sera affiché en différentes couleurs
1) Vert - l’état le plus sain, ce qui signifie que tous les éclats primaires et répliques sont disponibles ; 2) Jaune - tous les fragments primaires sont disponibles, mais certains fragments répliques ne sont pas disponibles ; 3) Rouge - Certains fragments principaux ne sont pas disponibles. (À ce stade, certaines données peuvent encore être trouvées lors de l’exécution de la requête, il est donc préférable de la résoudre rapidement.) )
Pour consulter l’état de l’index, accédez à :La connexion hyperlientérée est visible.
.monitoring-es-6-2021.01.22 0 p NON ATTRIBUÉ ALLOCATION_FAILED Qu’est-ce que le fragment non assigné ?
Explication en une phrase : fragments non alloués. Au démarrage d’ES, vous constaterez que les fragments du cluster apparaissent violet, gris, puis enfin verts après avoir été rafraîchis constamment via le plug-in Head.
Pourquoi le fragmentation non assignée se produit-elle ?
Si vous ne pouvez pas allouer des fragments, par exemple, si vous avez suralloué le nombre de fragments répliques pour le nombre de nœuds du cluster, les fragments restent NON ATTRIBUÉS. Le code d’erreur est : ALLOCATION_FAILED.
Causes possibles des problèmes de fragmentation non assignée ?
1) INDEX_CREATED : Non alloué en raison de l’API qui a créé l’indice. 2) CLUSTER_RECOVERED : Non alloué en raison de la récupération complète du cluster. 3) INDEX_REOPENED : Non alloué en raison de l’ouverture ou de la fermeture d’un indice. 4) DANGLING_INDEX_IMPORTED : Non alloué en raison du résultat de l’importation de l’indice suspendu. 5) NEW_INDEX_RESTORED : Non attribué en raison d’un retour à un nouvel index. 6) EXISTING_INDEX_RESTORED : Non alloué en raison d’un retour à un index fermé. 7) REPLICA_ADDED : Non alloué en raison de l’ajout explicite de fragments répliques. 8) ALLOCATION_FAILED : Non alloué en raison d’une défaillance d’allocation des fragments. 9) NODE_LEFT : Le nœud portant le fragment quitte le cluster et n’est pas alloué. 10) RÉINITIALISÉ : En raison des fragments non alloués lors du passage du début à l’initialisation (par exemple, fragmentation avec des copies ombres en ombre). 11) REROUTE_CANCELLED : Désaffecter à la suite d’un ordre explicite de dé-resail. 12) REALLOCATED_REPLICA : Déterminer qu’un meilleur emplacement de réplique est calibré pour l’utilisation, ce qui entraîne l’annulation et la désallocation des copies existantes.
Connectez-vous au serveur et consultez les journaux Elasticsearch (ES) comme suit :
Elasticsearch génère beaucoup de logs, tous dans le répertoire ES_HOME/logs. Le niveau de journalisation par défaut est INFO. Il fournit des informations modérées, mais est conçu pour ne pas submerger vos logs. La connexion hyperlientérée est visible.
Il existe un grand nombre d’erreurs telles que :
[2021-01-21T03:33:26,435] [AVERTISSEMENT] [o.e.x.m.e.l.LocalExporter] [A_OefhJ] erreur inattendue lors de l’indexation du document de surveillance
org.elasticsearch.xpack.monitoring.exporter.ExportException: ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];] sur 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] sur 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) ~[ ?:?] sur org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java :60) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.support.ContextPreservingActionListener.onResponse(ContextPreservingActionListener.java :43) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.support.TransportAction$1.onResponse(TransportAction.java :85) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.support.TransportAction$1.onResponse(TransportAction.java :81) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.bulk.TransportBulkAction$BulkRequestModifier.lambda$wrapActionListenerIfNeeded$0(TransportBulkAction.java :607) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java :60) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.bulk.TransportBulkAction$BulkOperation$1.finishHim(TransportBulkAction.java :414) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.bulk.TransportBulkAction$BulkOperation$1.onFailure(TransportBulkAction.java :409) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.support.TransportAction$1.onFailure(TransportAction.java :91) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.support.replication.TransportReplicationAction$ReroutePhase.finishAsFailed(TransportReplicationAction.java :901) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.support.replication.TransportReplicationAction$ReroutePhase.handleBlockException(TransportReplicationAction.java :824) ~[ elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.support.replication.TransportReplicationAction$ReroutePhase.handleBlockExceptions(TransportReplicationAction.java :812) ~[ elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.support.replication.TransportReplicationAction$ReroutePhase.doRun(TransportReplicationAction.java :710) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java :37) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.support.replication.TransportReplicationAction.doExecute(TransportReplicationAction.java :169) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.support.replication.TransportReplicationAction.doExecute(TransportReplicationAction.java :97) ~[elasticsearch-6.5.2.jar :6.5.2] sur 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) ~[ ?:?] sur org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java :165) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.support.TransportAction.execute(TransportAction.java :139) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.support.TransportAction.execute(TransportAction.java :81) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.bulk.TransportBulkAction$BulkOperation.doRun(TransportBulkAction.java :384) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java :37) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.bulk.TransportBulkAction.executeBulk(TransportBulkAction.java :496) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.bulk.TransportBulkAction.executeIngestAndBulk(TransportBulkAction.java :243) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.bulk.TransportBulkAction.doExecute(TransportBulkAction.java :169) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.bulk.TransportBulkAction.lambda$processBulkIndexIngestRequest$4(TransportBulkAction.java :549) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.ingest.IngestService$4.doRun(IngestService.java :417) [elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java :723) [elasticsearch-6.5.2.jar :6.5.2] sur 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] Causé par : org.elasticsearch.cluster.block.ClusterBlockException : blocked by : [FORBIDDEN/12/index lecture seule / autoriser suppression (API)] ; sur org.elasticsearch.cluster.block.ClusterBlocks.indexBlockedException(ClusterBlocks.java :183) ~[elasticsearch-6.5.2.jar :6.5.2] sur org.elasticsearch.action.support.replication.TransportReplicationAction$ReroutePhase.handleBlockExceptions(TransportReplicationAction.java :810) ~[ elasticsearch-6.5.2.jar :6.5.2] ... 21 de plus
Après analyse, il a été constaté que c’était parce queL’espace disque du serveur où se trouve l’ES est trop faible, une fois qu’un index contenant un ou plusieurs fragments est attribué à un nœud d’un disque qui stocke plus de 95 % des données, l’index sera forcé en mode lecture seule.
Consultez toutes les informations sur les paramètres d’index pour consulter :La connexion hyperlientérée est visible., comme montré dans la figure ci-dessous :
« connaissance » : { « paramètres » : { « index » : { « number_of_shards » : « 3 », « blocages » : { « read_only_allow_delete » : « vrai » }, « provided_name » : « connaissance », « creation_date » : « 1576206251443 », « number_of_replicas » : « 0 », « uuid » : « yeSIP_otQo6JQ8ooRdr8hA », « version » : { « créé » : « 6050299 » } } } } read_only_allow_deleteLorsque cet attribut est vrai, l’indice ES ne permet que de lire et supprimer des données, et n’autorise pas l’ajout ou la modification de données
solution
Après avoir résolu le problème du disque, développez ou supprimez les fichiers indésirables, suivez le tutoriel ci-dessous.
Régler read_only_allow_delete sur faux
Envoyez une requête put en utilisant elasticsearch-head :La connexion hyperlientérée est visible., comme montré dans la figure ci-dessous :
Cela ne peut toujours pas effacer l’état de santé de Red,Supprimez directement les données « .monitoring-es-6-* », l’État devient sain, comme le montre la figure ci-dessous :
(Fin)
|