CLI - ldp-tail, un outil pour suivre vos logs en temps réel
Ce tail surpuissant suit et met en forme vos logs avec brio.
Objectif
Ce guide vous montre comment utiliser Logs Data Platform pour diffuser vos logs en temps réel.
Logs Data Platform vous permet de connecter différentes applications ou serveurs à un endpoint unique et de les faire apparaître, si besoin, dans un seul flux. ldp-tail est capable de suivre un de vos flux en temps réel, avec une latence inférieure à la seconde, grâce à l'une des fonctionnalités exclusives de la plateforme : l'endpoint WebSocket.
Prérequis
- ldp-tail peut être exécuté sur Linux, Mac ou Windows, localement ou à distance
- Vous aurez besoin d'une connexion internet
- Un compte LDP avec un flux actif et l'option WebSocket activée
En pratique
Télécharger et tester ldp-tail en deux minutes
ldp-tail est dérivé d'un outil interne utilisé par les ingénieurs d'OVHcloud pour suivre en temps réel les logs de centaines d'applications et de serveurs. Il est écrit en Go et est entièrement open source. Si vous êtes curieux, vous pouvez donc consulter le code sur https://github.com/ovh/ldp-tail. Vous pouvez également télécharger les versions binaires depuis ce site. Rendez-vous sur https://github.com/ovh/ldp-tail/releases pour télécharger la version correspondant à votre plateforme. Les versions 64 bits de Linux, Windows et Mac OS X sont actuellement prises en charge. Décompressez l'archive obtenue et vous obtiendrez le binaire ldp-tail.
Vous pouvez le tester immédiatement sur notre flux de démonstration en utilisant cette commande dans un terminal.
Seules deux options sont disponibles ici : l'adresse et le pattern.
- L'adresse est l'adresse WebSocket de votre flux, qui dépend de votre cluster et de votre flux.
- Le pattern est le format d'affichage de vos logs. Notez que cette option n'est pas obligatoire. Vous trouverez plus d'informations sur cette option plus loin.
Pour tester ldp-tail avec l'un de vos flux, vous devez d'abord récupérer votre adresse WebSocket. Voici comment procéder.
Récupérer votre adresse WebSocket
Récupérons l'adresse WebSocket qui vous permettra de suivre vos logs. Pour cela, vous devrez d'abord vous connecter au manager et vous rendre sur la page des flux. Depuis là, ouvrez le menu du flux dont vous souhaitez obtenir l'adresse et cliquez sur Superviser en temps réel.
Vous arriverez sur une nouvelle page où vous verrez tous vos logs en temps réel, dès qu'ils arrivent. Sur cette page, cliquez sur le bouton Copier l'adresse WebSocket pour copier l'adresse WebSocket dans votre presse-papiers. Utilisez simplement l'adresse comme dans l'exemple et vous verrez vos logs s'afficher immédiatement dans votre terminal.
Vous trouverez également sur cette page un lien vers la page des releases de ldp-tail, ainsi que trois façons de tester votre flux avec des commandes.
Mise en forme et filtrage
ldp-tail n'est pas qu'un simple tail (comme son nom pourrait le suggérer). Il propose des fonctionnalités avancées de mise en forme et de filtrage. La documentation complète de ces fonctionnalités est disponible sur le site GitHub. Voici les deux principales options que vous pouvez utiliser pour enrichir votre sortie.
L'option pattern
Cette option permet de mettre en forme la sortie et de choisir les champs que vous souhaitez afficher. Par exemple, avec le flux de démonstration :
Notez que dans cet exemple, nous utilisons la convention de nommage des champs GELF, ce qui signifie que tous vos champs supplémentaires doivent commencer par un underscore. Cela s'explique par le fait que l'endpoint WebSocket envoie des messages entièrement compatibles avec le format GELF, ce qui vous permet ensuite de les utiliser avec n'importe quel outil compatible GELF.
L'option pattern permet également de personnaliser les couleurs : la couleur de fond et la couleur du texte sont toutes deux personnalisables.
Dans cet exemple, le champ title sera coloré en rouge et le corps sera coloré en bleu. Vous pouvez utiliser l'attribut bColor pour colorer le fond à la place. L'option pattern prend en charge de nombreuses autres opérations, comme le formatage de date, la concaténation, l'affichage d'une durée lisible par un humain, etc. ldp-tail prend également en charge la mise en forme conditionnelle. Cela peut être utile pour faire ressortir les informations importantes de votre flux. Par exemple, la règle suivante peut être mise en œuvre : si une valeur est supérieure à un seuil, afficher le message en rouge, sinon l'afficher en vert.
Avec notre flux de démonstration, nous pouvons utiliser ce type de filtre et l'attribut numérique rating_num pour afficher en jaune chaque blague notée au-dessus de 100.
L'option match
Comme son nom l'indique, l'option match permet de choisir les messages que vous souhaitez afficher, ou non, dans votre ldp-tail. Cette option comporte plusieurs opérateurs, tous décrits sur https://github.com/ovh/ldp-tail. Vous pouvez facilement afficher les messages commençant par certaines valeurs, ou afficher uniquement les messages possédant un certain champ, ou dont un champ est supérieur ou inférieur à une valeur donnée.
Voici comment afficher uniquement les logs dont le titre commence par le mot « another »
Vous pouvez bien sûr combiner plusieurs correspondances en exécutant ldp-tail --match <COND_1> --match <COND_2> --pattern .... Une combinaison de pattern et de match peut devenir difficile à lire ; c'est pourquoi ldp-tail prend en charge un fichier de configuration TOML.
Fichier de configuration TOML
Voici un exemple de fichier de configuration TOML pour ldp-tail. Vous pouvez l'enregistrer dans un fichier nommé myfile.toml.
Si vous ne connaissez pas TOML, voici quelques explications. Address et pattern sont similaires aux options disponibles en ligne de commande. L'option Match est un peu différente. Comme vous pouvez définir plusieurs conditions, Match est un tableau de tables où chaque objet représente une condition complète, avec le champ, l'opérateur, la valeur et, si besoin, la négation de cette condition. Notez que l'attribut Value peut être une chaîne de caractères ou un nombre. L'attribut Not doit être le booléen true ou false.
Une fois votre fichier prêt, vous pouvez lancer ldp-tail avec :
Combiner correspondances et filtres
Si vous combinez des correspondances (matches) et des filtres, vous pouvez par exemple afficher les appels à une API et mettre en forme la sortie en fonction du statut ou de la durée de l'appel.
Cet exemple a été généré à l'aide de la configuration suivante :
Si vous avez des difficultés à comprendre ce pattern, ou si vous souhaitez de l'aide pour créer le vôtre, n'hésitez pas à nous contacter sur le Hub Communautaire.
Rejouer le tail
Il est également possible de rejouer une plage de temps donnée dans le passé.
Pour cela, indiquez begin et end en tant que paramètres de requête dans l'URI. begin et end doivent être au format timestamp Unix.
Exemple :
Pour que cela fonctionne, remplacez les valeurs <BEGIN> et <END> par des timestamps UNIX correspondant aux dernières heures. Par exemple, pour le 5 août 2024 entre 09:00:00 UTC et 11:00:00 UTC :
Vous pouvez utiliser le site https://www.unixtimestamp.com/ pour convertir facilement des dates en timestamps Unix.
Aller plus loin
- Pour bien démarrer : Démarrage rapide
- Documentation : Guides
- Créer un compte : Essayez !
- Hub communautaire : communauté d'utilisateurs