English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Elasticsearch est composé de nombreux modules, qui sont responsables de ses fonctionnalités. Ces modules ont deux types de paramètres, comme indiqué ci-dessous :
Paramètres statiques−Avant de démarrer Elasticsearch, il est nécessaire de configurer ces paramètres dans le fichier config(elasticsearch.yml). Vous devez mettre à jour tous les noeuds du cluster pour refléter les modifications apportées à ces paramètres.
Paramètres dynamiques −Ces paramètres peuvent être configurés sur une Elasticsearch en temps réel.
Nous discuterons des différents modules d'Elasticsearch dans les sections suivantes de ce chapitre.
Les paramètres de niveau de cluster déterminent l'allocation des fragments aux différents noeuds et la redistribution des fragments pour rééquilibrer le cluster. Voici les paramètres de contrôle de l'allocation des fragments.
Configuration | Valeurs possibles | Description |
---|---|---|
cluster.routing.allocation.enable | ||
all | Cette valeur par défaut autorise l'allocation de fragments pour tous les types de fragments. | |
primaries | Cela autorise uniquement l'allocation de fragments pour les fragments principaux. | |
new_primaries | Cela autorise uniquement l'allocation de fragments pour les fragments principaux de nouveaux indices. | |
aucun | Cela n'autorise aucune allocation de fragment. | |
cluster.routing.allocation.node_concurrent_recoveries | Valeur numérique (par défaut valeur)2) | Cela limite le nombre de restaurations de fragments en parallèle. |
cluster.routing.allocation.node_initial_primaries_recoveries | valeur numérique (par défaut)4) | Cela limite le nombre de restaurations initiales principales en parallèle. |
cluster.routing.allocation.same_shard.host | Valeur booléenne (par défaut false) | Cela limite le nombre de copies de la même piste allouées sur le même noeud physique. |
index.recovery.concurrent_streams | valeur numérique (par défaut)3) | Cela contrôle le nombre de flux réseau ouverts sur chaque noeud lors de la récupération des fragments des pairs. |
index.recovery.concurrent_small_file_streams | valeur numérique (par défaut)2) | Cela peut contrôler la taille inférieure pendant la récupération des fragments.5Le nombre de flux réseau ouverts sur chaque noeud pour les petits fichiers de mb. |
cluster.routing.rebalance.enable | ||
all | Cette valeur par défaut permet de balancer tous les types de fragments. | |
primaries | Cela n'autorise que la balance de fragments des piste principales. | |
replicas | Cela n'autorise que la balance de fragments des copies. | |
aucun | Cela n'autorise aucune forme de balance de fragments. | |
cluster.routing.allocation .allow_rebalance | ||
toujours | Cette valeur par défaut permet toujours de rebalancer. | |
indexs_primaries_active | Cela permet de rebalancer lors de l'allocation de toutes les piste principales du cluster. | |
Indices_all_active | Cela permet de rebalancer lors de l'allocation de toutes les piste principales et des copies. | |
cluster.routing.allocation.cluster _concurrent_rebalance | valeur numérique (par défaut)2) | Cela limite le nombre de balance de fragments concurrents dans le cluster. |
cluster.routing.allocation .balance.shard | valeur flottante (par défaut 0.)45f) | Cela définit le facteur de pondération des fragments alloués à chaque noeud. |
cluster.routing.allocation .balance.index | valeur flottante (par défaut 0.)55f) | Cela définit le ratio du nombre de fragments de chaque index alloués sur un noeud spécifique. |
cluster.routing.allocation .balance.threshold | valeur flottante non négative (par défaut)1.0f) | C'est la valeur minimale d'optimisation à exécuter. |
Configuration | Valeurs possibles | Description |
---|---|---|
cluster.routing.allocation.disk.threshold_enabled | Valeur booléenne (par défaut true) | Cela permet d'activer et de désactiver le programme de décision d'allocation de disque. |
cluster.routing.allocation.disk.watermark.low | Valeur de chaîne (par défaut)85%) | Cela représente le taux d'utilisation maximale du disque ; après cela, il ne sera pas possible d'allouer d'autres piste à ce disque. |
cluster.routing.allocation.disk.watermark.high | valeur en chaîne (par défaut)90%) | Cela signifie que la quantité maximale d'utilisation est atteinte lors de l'allocation ; si cela se produit lors de l'allocation, Elasticsearch attribuera cette piste à un autre disque. |
cluster.info.update.interval | valeur en chaîne (par défaut)30s) | C'est l'intervalle entre deux vérifications de l'utilisation du disque. |
cluster.routing.allocation.disk.include_relocations | Valeur booléenne (par défaut true) | Cela détermine si les fragments attribués actuels doivent être pris en compte lors du calcul du taux d'utilisation du disque. |
Ce module aide le cluster à découvrir et à maintenir l'état de tous les nœuds du cluster. Lorsque des nœuds sont ajoutés ou supprimés du cluster, l'état du cluster change. La configuration du nom de cluster permet de créer des différences logiques entre différents clusters. Il existe certains modules qui peuvent vous aider à utiliser les API fournies par les fournisseurs de clouds, comme suit-
Découverte Azure
EC2Découverte
Découverte Google Compute Engine
Découverte Zen
Ce module conserve l'état du cluster et les données de sharding lors du redémarrage complet du cluster. Voici les paramètres statiques de ce module-
Configuration | Valeurs possibles | Description |
---|---|---|
gateway.expected_nodes | Valeur numérique (par défaut 0) | Le nombre de nœuds dans le cluster utilisés pour la récupération des fragments locaux. |
gateway.expected_master_nodes | Valeur numérique (par défaut 0) | Le nombre prévu de nœuds principaux dans le cluster avant le début de la récupération. |
gateway.expected_data_nodes | Valeur numérique (par défaut 0) | Le nombre prévu de nœuds de données dans le cluster avant le début de la récupération. |
gateway.recover_after_time | Valeur de chaîne (par défaut)5m) | C'est l'intervalle entre deux vérifications de l'utilisation du disque. |
cluster.routing.allocation. disk.include_relocations | Valeur booléenne (par défaut true) | Cela spécifie le moment où le processus de récupération commencera, indépendamment du nombre de nœuds rejoignant le cluster. gateway.recover_after_nodes |
Ce module gère la communication entre le client HTTP et l'API Elasticsearch. Vous pouvez désactiver ce module en changeant la valeur de http.enabled en false.
Voici les paramètres utilisés pour contrôler ce module (configurés dans elasticsearch.yml)-
Numéro | Configuration et description |
---|---|
1 | http.port C'est le port d'accès à Elasticsearch, allant de9200-9300. |
2 | http.publish_port Ce port est utilisé par le client HTTP, il est également très utile dans le cas de pare-feu. |
3 | http.bind_host C'est l'adresse principale de l'hôte du service HTTP. |
4 | http.publish_host C'est l'adresse principale de l'hôte client HTTP. |
5 | http.max_content_length C'est la taille maximale du contenu de la requête http. Sa valeur par défaut est100mb. |
6 | http.max_initial_line_length C'est la taille maximale de l'URL, avec une valeur par défaut de4ko. |
7 | http.max_header_size C'est la taille maximale de l'en-tête HTTP, avec une valeur par défaut de8ko. |
8 | http.compression Cela active ou désactive le support pour la compression, avec une valeur par défaut de false. |
9 | http.pipelinig Cela active ou désactive le pipeline HTTP. |
10 | http.pipelining.max_events Cela limite le nombre d'événements à mettre en file d'attente avant de fermer la requête HTTP. |
Ce module gère les paramètres globaux pour chaque index. Les paramètres suivants sont principalement liés à l'utilisation de la mémoire-
Cela sert à éviter les erreurs OutOfMemoryError causées par les opérations. Ce paramètre limite principalement la taille de la pile JVM. Par exemple, le paramètre indexs.breaker.total.limit, par défaut à la taille de la pile JVM de70%.
Il est principalement utilisé pour l'agrégation sur les champs. Il est recommandé d'avoir suffisamment de mémoire pour l'allouer. Le paramètre index.fielddata.cache.size peut être utilisé pour contrôler la quantité de mémoire utilisée pour le cache des données de champ.
Cette mémoire est utilisée pour stocker les résultats des requêtes. Ce cache utilise la stratégie d'éviction de la plus récente (LRU). Le paramètre Indices.queries.cache.size contrôle la taille de la mémoire de ce cache.
Ce tampon stocke les documents nouvellement créés dans l'index et les actualise lorsque le tampon est plein. Les paramètres tels que indexs.memory.index_buffer_size contrôlent le nombre de piles allouées à ce tampon.
Ce cache est utilisé pour stocker les données de recherche locales de chaque shard. Le cache peut être activé pendant la création de l'index ou désactivé via un paramètre d'URL.
Désactiver le cache - ?request_cache = true Activer le cache "index.requests.cache.enable": true
Il contrôle les ressources pendant le processus de récupération. Voici les paramètres à définir-
Configuration | Valeur par défaut |
---|---|
indices.recovery.concurrent_streams | 3 |
indices.recovery.concurrent_small_file_streams | 2 |
indices.recovery.file_chunk_size | 512ko |
indices.recovery.translog_ops | 1000 |
indices.recovery.translog_size | 512ko |
indices.recovery.compress | true |
indices.recovery.max_bytes_per_sec | 40mb |
L'intervalle de temps de vie (TTL) définit le temps de vie d'un document après lequel ce document sera supprimé. Voici les paramètres dynamiques utilisés pour contrôler ce processus-
Configuration | Valeur par défaut |
---|---|
indices.ttl.interval | 60s |
indices.ttl.bulk_size | 1000 |
Chaque nœud peut choisir s'il s'agit d'un nœud de données. Vous pouvez modifier cette propriété en changeant le paramètre node.data. Définissez cette valeur sur false pour indiquer que ce nœud n'est pas un nœud de données.