Bonjour à tous,
Je rencontre des soucis sur mon serveur ELK, et j'ai éventuellement plusieurs pistes pour y remédier mais aucune n'aboutit car j'ai toujours des contraintes que je ne peux pas gérer.
En fait, tout part du fait que mon index principale, celui sur lequel je travaille la plupart du temps, à visiblement atteint le nombre maximum de shard / documents :
number of documents in the index cannot exceed 2147483519
Cet index comporte moins d'un mois de log, période à laquelle j'avais prévu de configurer ma rotation.
Avec le recul, je me suis dit que dans cette optique de faire une rotation par mois, je me retrouvais avec pas ( ou peu ) de log en début de chaque rotation, ce qui n'est pas pratique dans mon utilisation car mes requêtes sont souvent basés sur des périodes plus ou moins longues.
Je me suis donc demandé si il n'était pas possible de simplement supprimer les documents de mon index qui sont plus vieux que day-21 par exemple et je me suis donc renseigné sur la commande _delete_by_query mais je ne comprends pas bien la syntaxe malgré mes recherches.
Dans la dev tool, j'ai quelque chose du genre :
POST index-name/_delete_by_query
{
"query": {
"range": {
"time": {
"lte": "day-21"
}
}
}
}
Mais ça ne semble pas matcher :
{
"took" : 66,
"timed_out" : false,
"total" : 0,
"deleted" : 0,
"batches" : 0,
"version_conflicts" : 0,
"noops" : 0,
"retries" : {
"bulk" : 0,
"search" : 0
},
"throttled_millis" : 0,
"requests_per_second" : -1.0,
"throttled_until_millis" : 0,
"failures" :
}
Le nom de mon index est correct, et il comporte bien des documents qui datent de plus de 21 jours ( pour précisions, on parle bien d'index basé sur @timestamp ). Qu'est ce que je loupe dans cette commande ?
J'ai essayé avec le range time, day, timestamp ...
Quand bien même, à terme je verrais bien une commande curl qui pourrait s’exécuter tout les jours via une crontab pour conserver uniquement 21 jours de logs dans mon index, mais pour que cette requête soit interprétable par le shell, je ne vois pas trop la syntaxe à renseigner.
Des idées ?
Autre point, lors de mes recherches je suis tombé sur plusieurs posts indiquant qu'il était grandement préférable de favoriser des daily index, ce qui simplifie grandement la gestion de la rotation dans ce cas. Je suis bien d'accord avec ce point, mais autre chose me dérange dans ce mode de fonctionnement. Les recherches kibana sont bien basés sur un seul et unique index nous sommes d'accord ? Il était noté sur ce post que j'ai lu que non, mais j'ai du mal à y croire.
Dans le cas contraire, si c'est gérable de faire des recherches sur plusieurs index simultanément, je veux bien savoir comment ça me faciliterai grandement la vie
Désolé pour le pavé, et merci d'avance pour vos réponses.