Kibana : Nettoyer les fichiers et indices volumineux dans Elasticsearch
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.
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.
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.