Modifier configuration de Logstash sans redémarrer son service


#1

Bonjour,

Je dispose d'une pile ELK et je voudrais savoir comment procéder pour ne pas avoir à redémarrer le service Logstash si l'on veut modifier son fichier de configuration.
Il faudrait donc que les logs continuent d'être envoyés continuellement sans que la modification du fichier de configuration n'engendre une interruption dans leur envoi.

Vous avez une idée svp?


(Christophe Boucaut) #2

Je n'y connais rien du tout, donc peut-être qu'il existe un outil ou autre directement intégré mais si non ma proposition:
Tu as deux process logstash. Un qui fonctionne, un éteint. Lorsque tu veux changer le fichier de config:
1- tu laisses tourner le premier.
2- tu modifies le fichier de config.
3- tu démarres le second logstash.
4- une fois le second bien démarré, tu coupes le premier.
5- puis tu inverses pour la prochaine fois.


(David Pilato) #3

Ce sera possible dans le futur (lointain) mais pas aujourd'hui.
A noter que Logstash sait normalement à quel endroit du fichier tu étais quand tu stoppes le process (de mémoire). Donc éteindre et rallumer ne devrait pas poser de problème pour reprendre...

Mais je ne suis pas certain de ça. Peut-être @colinsurprenant peut aider ici ?


(Colin Surprenant) #4

Pourriez vous nous donner les details de votre configuration? si possible vous pouvez partager votre fichier de configuration.

De facçon générale, stopper et redémarrer logstash ne devrait pas causer de perte d'événements. Si par exemple vous utilisez le file input, celui-ci sera en mesure de se souvenir du dernier log lu et lors du redémarrage il va reprendre ou il a laissé.


#5

Ah d'accord merci, dans ce cas là je pense qu'un service restart pourrait suffir.

Mais Logstash lit les données à quelle profondeur? Il les lit à partir du début du fichier de logs? Est-ce qu'on peut spécifier une date de début de lecture du fichier de logs dans le fichier de configuration de Logstash? Par exemple, dire à Logstash de lire seulement les logs datant de moins de 2 mois.

Et est-ce qu'il est possible de configurer Elasticsearch de telle sorte à lui dire de vider ses données datant de plus d'un an par exemple?

Encore merci pour votre aide!


(David Pilato) #6

Je laisse @colinsurprenant répondre à la partie LS.

Et est-ce qu'il est possible de configurer Elasticsearch de telle sorte à lui dire de vider ses données datant de plus d'un an par exemple?

Non. Mais tu peux utiliser Curator.


#7

Merci @dadoonet :smile:

@colinsurprenant vous avez la réponse concernant Logstash svp ?


(Colin Surprenant) #8

@Safia_G chaque input plugin offre des options particulières qui sont propres au type d'input. En assumant que vous utilisez le file input, pour répondre à vos questions, il est possible de le configurer pour lire les données à partir du début du fichier ou à partir de la fin ou bien à partir de la dernière ligne lue. Pour plus d'information sur les options du file input vous pouvez consulter https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.html.

Il n'est cependant pas possible de spécifier une date de lecture ou de «lire seulement les logs datant de moins de 2 mois» - pour ca il serait probablement possible d'utiliser les expressions conditionnelles de logstash, mais je crois qu'il serait peut-être préférable de structurer les fichiers data par période de temps et faire la selections sur les noms de fichiers?


(system) #9