Avant de mettre à niveau un cluster Alibaba Cloud Elasticsearch, effectuez les vérifications manuelles requises et assurez-vous que l'état et la configuration du cluster sont compatibles avec la version cible. Cette rubrique détaille les points à vérifier, explique l'importance de chaque contrôle et indique comment résoudre les problèmes avant de lancer la mise à niveau.
Toutes les commandes présentées dans cette rubrique peuvent être exécutées depuis la console Kibana. Pour savoir comment y accéder, consultez la section Connexion à la console Kibana.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Un accès à la console Kibana pour votre cluster
La confirmation de la version cible vers laquelle vous souhaitez effectuer la mise à niveau (consultez la section Mise à niveau de la version d'un cluster pour connaître les chemins de mise à niveau pris en charge)
Vérifications obligatoires
Effectuez toutes les vérifications suivantes avant de démarrer la mise à niveau.
Vérification des index fermés
Exécutez la commande suivante pour lister tous les index et leurs statuts :
GET _cat/indices?v
health status index
green open .monitoring-es-6-2020.10.29
green open .monitoring-logstash-6-2020.10.31
green open filebeat-6.7.0-2020.10.31
green open .monitoring-kibana-6-2020.10.27
close test
La sortie affiche chaque index avec son statut dans la colonne status. Si un index présente le statut close, ouvrez-le avant la mise à niveau :
POST test/_open
Vérification de la disponibilité de la version du noyau
Si vous envisagez de mettre à jour le noyau du cluster lors de la mise à niveau, vérifiez qu'une version ultérieure du noyau est disponible sur la page Basic Information de votre cluster.
Dans la ligne Version, vérifiez la version actuelle de l'instance (par exemple, 7.10.0). Si un lien Upgradable kernel patch available apparaît après le numéro de version, cela signifie qu'un correctif du noyau est disponible.
Vous ne pouvez mettre à jour le noyau que si une version ultérieure est répertoriée.
Vérification de la compatibilité du client
Si un client se connecte au cluster, vérifiez que sa version est compatible avec la version cible du cluster. Pour plus de détails sur la compatibilité des versions, consultez la page Compatibility. Si les versions sont incompatibles, mettez à niveau le client avant de poursuivre.
Vérifications supplémentaires pour les mises à niveau de la V5.X vers la V6.X
En cas de mise à niveau de la V5.X vers la V6.X, effectuez les vérifications suivantes en plus des contrôles obligatoires mentionnés ci-dessus.
Division des index multi-types
Les versions V6.X et ultérieures ne prennent pas en charge les index multi-types. Si le cluster contient des index multi-types, l'écriture dans ces index continuera de fonctionner après la mise à niveau, mais la création de nouveaux index multi-types en V6.X générera des erreurs. Divisez chaque index multi-type en index à type unique avant la mise à niveau.
Désactivation de la recherche inter-clusters
Exécutez la commande suivante pour vérifier si la recherche inter-clusters est activée :
GET _cluster/settings
Si search.remote apparaît dans le résultat avec une valeur non nulle, la recherche inter-clusters est activée. Désactivez-la avant la mise à niveau :
PUT _cluster/settings
{
"persistent": {
"search.remote.*": null
},
"transient": {
"search.remote.*": null
}
}
Après la mise à niveau, vous pourrez réactiver la recherche inter-clusters.
En V5.X, la recherche inter-clusters utilise le paramètre search.remote. En V6.X, ce paramètre devient cluster.remote.
Vérification de l'état du cluster
Lorsque vous lancez la mise à niveau, cliquez sur Precheck pour exécuter une vérification automatisée de l'état et de la charge du cluster. La mise à niveau ne se poursuit que si les deux critères sont validés. Utilisez le tableau suivant pour vérifier manuellement ces conditions avant de cliquer sur Precheck.
|
Élément de vérification |
État normal |
|
Statut du cluster |
Normal (vert) |
|
Utilisation de la mémoire heap JVM |
Inférieure à 75 % |
|
Utilisation du disque |
Inférieure à la valeur de |
|
Shards réplicas |
Tous les index disposent de shards réplicas configurés ; pour les clusters multi-zones, le nombre de shards réplicas par index doit être inférieur au nombre de zones |
|
Snapshots |
Un snapshot a été créé au cours de la dernière heure |
|
Plug-ins personnalisés |
Aucun plug-in personnalisé installé |
|
Instances Elastic Compute Service (ECS) |
Nombre suffisant d'instances ECS disponibles dans la zone du cluster |
|
Fichier de configuration YML |
La configuration YML de la version précédente est compatible avec la version cible |
Pendant la mise à niveau, le système ajoute des nœuds exécutant la version cible, migre les données des nœuds d'origine vers les nouveaux nœuds, puis supprime les nœuds d'origine. Assurez-vous que la zone dispose de suffisamment d'instances ECS avant le début de la mise à niveau.
Vérification de la compatibilité de la configuration
Lors de la mise à niveau vers la V6.X, le système vérifie automatiquement les configurations incompatibles. Pour effectuer cette vérification manuellement avant la mise à niveau, exécutez :
GET _cluster/settings
GET */_settings?flat_settings=true
Les configurations suivantes sont incompatibles avec la V6.X :
|
N° |
Niveau de configuration |
Catégorie de configuration |
Paramètre |
|
1 |
Cluster |
Paramètres de snapshot |
|
|
2 |
Cluster |
Paramètres de limitation du stockage |
|
|
3 |
Index |
Paramètres de similarité |
|
|
4 |
Index |
Paramètres de réplica shadow |
|
|
5 |
Index |
Paramètres de stockage d'index |
|
|
6 |
Index |
Paramètres de limitation du stockage |
|
|
7 |
Index |
Paramètre de mappage include_in_all |
|
|
8 |
Index |
Paramètres de version pour la création d'index |
|
|
9 |
Modèle d'index |
Paramètres de similarité |
|
|
10 |
Modèle d'index |
Paramètres de réplica shadow |
|
|
11 |
Modèle d'index |
Paramètres de stockage d'index |
|
|
12 |
Modèle d'index |
Paramètres de limitation du stockage |
|
|
13 |
Modèle d'index |
Paramètre de mappage include_in_all |
|
|
14 |
Modèle d'index |
Paramètre de mappage _all |
|
|
15 |
Modèle d'index |
Paramètres multi-types dans le mappage |
— |
Tous les paramètres du tableau ci-dessus sont obsolètes depuis la V6.0 et les versions ultérieures. Pour plus de détails, consultez la page Breaking changes in 6,0.
Éléments de vérification CRITICAL (critique) vs WARNING (avertissement) :
CRITICAL : Le cluster ne peut pas être mis à niveau. Corrigez la configuration incompatible et relancez la vérification.
WARNING : Le cluster peut toujours être mis à niveau. La configuration sera ignorée après la mise à niveau.
Si un modèle d'index contient l'une des configurations de ce tableau, le modèle ne pourra pas être utilisé pour créer des index après la mise à niveau.
Remarques sur certains paramètres spécifiques :
include_in_all(élément 7) : Les index créés avant la mise à niveau de la V5.X vers la V6.X qui ont ce paramètre configuré restent utilisables après la mise à niveau. Les index créés après la mise à niveau ne prennent pas en charge ce paramètre.index.version.created(élément 8) : Ce paramètre empêche les mises à niveau d'index entre versions majeures différentes. Par exemple, les index créés en V5.X ne peuvent pas être directement mis à niveau vers la V7.X. Avant de passer de la V5.X à la V7.X, utilisez l'API Reindex pour migrer les données vers le cluster V7.X, puis supprimez les index V5.X.Élément 15 (types multiples dans le mappage du modèle d'index) : Vérifiez si la configuration de mappage dans le modèle d'index contient des paramètres de types multiples.
Correction des configurations incompatibles
Configurations au niveau du cluster
Désactivez les configurations incompatibles au niveau du cluster en définissant leurs valeurs sur null.
Paramètres de snapshot :
PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.snapshot.relocation_enabled": null
},
"transient": {
"cluster.routing.allocation.snapshot.relocation_enabled": null
}
}
Paramètres de limitation du stockage :
PUT _cluster/settings
{
"persistent": {
"indices.store.throttle.type": null,
"indices.store.throttle.max_bytes_per_sec": null
},
"transient": {
"indices.store.throttle.type": null,
"indices.store.throttle.max_bytes_per_sec": null
}
}
Configurations au niveau de l'index
Désactivez les configurations incompatibles au niveau de l'index en définissant leurs valeurs sur null. Remplacez test_index par le nom de votre index.
|
Catégorie de configuration |
Commande |
|
Paramètres de similarité |
|
|
Paramètres de réplica shadow |
|
|
Paramètres de stockage d'index |
|
|
Paramètres de limitation du stockage |
|
Les paramètres de similarité nécessitent la fermeture préalable de l'index. Les index fermés ne peuvent ni être lus ni écrits. Rouvrez l'index après avoir effectué les modifications.
Fermez l'index :
POST test_index/_close
Mettez à jour le paramètre :
PUT test_index/_settings
{
"index.similarity.base.*": null
}
Ouvrez l'index :
POST test_index/_open
Paramètres de réplica shadow :
PUT test_index/_settings
{
"index.shared_filesystem": null,
"index.shadow_replicas": null
}
Paramètres de stockage d'index :
PUT test_index/_settings
{
"index.store.type": null
}
Paramètres de limitation du stockage :
PUT test_index/_settings
{
"settings": {
"index.store.throttle.type": null,
"index.store.throttle.max_bytes_per_sec": null
}
}
Les index configurés avec include_in_all restent utilisables en V6.X. Aucune modification n'est nécessaire pour ce paramètre.
Configurations au niveau du modèle d'index
L'exemple suivant montre comment corriger les configurations incompatibles dans un modèle d'index nommé test_template.
-
Récupérez le modèle actuel :
GET _template/test_templateLe résultat affiche les configurations incompatibles — dans cet exemple, les paramètres de stockage d'index,
_alletinclude_in_all:{ "test_template": { "order": 0, "template": "test_*", "settings": { "index": { "store": { "throttle": { "max_bytes_per_sec": "100m" } } } }, "mappings": { "test_type": { "_all": { "enabled": true }, "properties": { "test_field": { "type": "text", "include_in_all": true } } } }, "aliases": {} } } -
Supprimez les configurations incompatibles et mettez à jour le modèle :
PUT _template/test_template { "order": 0, "template": "test_*", "settings": { }, "mappings": { "test_type": { "properties": { "test_field": { "type": "text" } } } }, "aliases": {} }
Étapes suivantes
Une fois toutes les vérifications effectuées et les configurations incompatibles corrigées, procédez à la mise à niveau. Consultez la section Mise à niveau de la version d'un cluster.