Kibana : Nettoyer les fichiers et indices volumineux dans Elasticsearch

Kibana : Nettoyer les fichiers et indices volumineux dans Elasticsearch

8 juil. 2024 · 2 min de lecture · 1 141 vues
// crédit : Elasticsearch
TL;DR Elasticsearch est un moteur de recherche et d’analyse distribué très populaire. Cependant, au fil du temps, les indices peuvent devenir volumineux, occupant beaucoup d’espace disque et potentiellement affectant les performances. Ce tutoriel vous guidera à travers le processus de nettoyage des indices volumineux dans Elasticsearch, comme par exemple avec Kibana qui utilise Elastic Search.

Avant de commencer, il faut vous quelques pré-requis pour pouvoir exectuer les différentes commande.

Pré-requis

- Curl : Pour interagir avec l’API REST d’Elasticsearch.

- Accès à l’instance Elasticsearch : Vous aurez besoin de l’URL, du nom d’utilisateur et du mot de passe pour accéder à votre instance Elasticsearch.

PUBLICITÉ

Objectif

L’objectif est de supprimer les indices qui sont soit :

  • Supérieurs à 500 Mo.
  • Supérieurs à 1 Go.

Script d’automatisation

Le script suivant liste les indices de votre instance Elasticsearch et supprime ceux qui dépassent une certaine taille.

for index in $(curl -u "utilisateur:motdepasse" -s -X GET "https://url:9200/_cat/indices?h=index,store.size" --insecure | awk '$2 ~ /gb/ || $2+0 > 500 {print $1}'); do
  echo "Deleting index: $index"
  curl -u "utilisateur:motdepasse" -s -X DELETE "https://url:9200/$index" --insecure
done
Explication étape par étape

1. Lister les indices avec leur taille :
   Utilisez la commande `curl` pour obtenir la liste des indices et leurs tailles.

SUR LA CHAÎNE · NOUVELLE VIDÉO JBL Charge 3 : NON à l’obsolescence programmée ! je change la batterie et port de charge Voir la vidéo →
curl -u "utilisateur:motdepasse" -s -X GET "https://url:9200/_cat/indices?h=index,store.size" --insecure

   Cette commande retourne un tableau des indices et leurs tailles.

2. Filtrer les indices volumineux :
   Utilisez `awk` pour filtrer les indices dont la taille est supérieure à 500 Mo ou 1 Go.

   | awk '$2 ~ /gb/ || $2+0 > 500 {print $1}'

   Cette partie du script vérifie si la taille de l’indice contient « gb » (gigaoctets) ou si elle est supérieure à 500 Mo.

3. Boucle de suppression :
   Pour chaque indice filtré, utilisez `curl` pour envoyer une requête DELETE à l’API d’Elasticsearch.

   for index in $(...); do
     echo "Deleting index: $index"
     curl -u "utilisateur:motdepasse" -s -X DELETE "https://url:9200/$index" --insecure
   done
Explication des paramètres

- `-u "utilisateur:motdepasse"` : Authentification pour accéder à Elasticsearch.
- `-s` : Mode silencieux pour supprimer la barre de progression.
- `-X GET` : Requête GET pour obtenir les informations des indices.
- `--insecure` : Permet de contourner les problèmes de certificat SSL.

Ce script simple et efficace vous permet de nettoyer automatiquement les indices volumineux dans votre instance Elasticsearch. En l’exécutant régulièrement, vous pouvez maintenir une utilisation efficace de l’espace disque et optimiser les performances de votre cluster Elasticsearch.

Pour des tâches plus complexes, vous pouvez étendre ce script ou utiliser des outils de gestion d’Elasticsearch plus avancés comme Curator.

Cette astuce t'a aidé ? ça a marché ?
écrit par LaRevueGeek décrypte l'actualité high-tech et la culture geek depuis 2014 : tests, bons plans, ciné et tout ce qui touche, de près ou de loin, au monde des geeks.
S'abonner · 33,2 k
$ ls ./a-lire-aussi

À lire aussi

Toutes les astuces →

Commentaires

0
~/commentaires — nouveau
$ connecte-toi pour donner ton avis…
connecté en invité · se connecter Créer un compte
0% lu
💬 0