Voici un petit article dont je suis assez fier. Je vous présente LogStream, un puits de logs intégré qui vous affiche les logs en live depuis des sources locales et distantes, avec plein de petites options d’affichage sympas !

LogStream est issu de ma découverte, depuis quelques mois, des IA de coding Claude Sonnet et Mistral Vibe. Moi qui suis un « vieux de la vieille », de la génération qui a passé ses nuits (et ses jours, oui, dans ce sens-là…) à coder en C, Eiffel, Smalltalk dans les années 90 (ça rappellera des souvenirs à certains), ça m’a fait un choc, je ne vous le cache pas … quelle puissance et simplicité dans le code produit ! Par contre, comme le disait Benjamin dans son interview il y a quelques jours, il faut bien cadrer l’IA utilisée et la « mener à la baguette » pour éviter qu’elle fasse n’importe quoi. J’ai découvert par ce biais le langage Go, dont j’aime beaucoup l’approche et la philosophie, moins exclusive que C ou C++, mes langages historiques, mais tout aussi passionnante.

Bref, ce n’est pas le sujet ! LogStream, donc, est un outil qui se déploie très vite via un docker-compose (comme souvent chez moi) et qui vous permet d’afficher tout de suite, sans configuration complexe, les logs des conteneurs et systèmes de la machine sur laquelle il est déployé. Je n’ai pas essayé sur Kube, mais comme c’est avant tout un outil d’analyse locale rapide, je pense qu’il doit fonctionner, sans toutefois être très utile dans ce genre de contexte 🙂

Claude m’a beaucoup aidé à documenter l’outil et à faire rapidement le schéma d’architecture. Je ne m’étendrai donc pas des heures sur son fonctionnement, mais je reste à votre disposition en cas de question spécifique, bien entendu.

Pour la suite, voici mon .env (il y a un exemple, plus simple encore, fourni) :

Ensuite, on fait un traditionnel git pull pour on build l’environnement (compilation de l’outil en Go) :
git pull https://gitea.vlab.bzh/vLab-BZH/logstream.git
cd logstream
cp .env.example .env
docker compose up –build

et hop … c’est parti direct sur le port 8080 (ou celui que vous avez renseigné dans le .env).

LogStream se veut simple et rapide à configurer. C’est l’objectif principal, par rapport à une suite Loki/Grafana/InfluxDB ou autre. Malgré tout, j’y ai ajouté pas mal de petites fonctionnalités qui simplifient la vie quand on veut isoler une erreur ou un type de log particulier.

L’outil dispose d’une authentification locale simple (user/password à renseigner dans le .env, ou à laisser vide pour arriver directement dans le produit) ou de la possibilité de la déléguer via une connexion OIDC (type PocketID, Keycloak ou Authentik/Authelia, par exemple).

Vous avez à votre disposition des filtres custom utilisables rapidement : soit en construisant vous-même une expression régulière si vous êtes expert, soit avec des filtres tout faits que j’ai déjà intégrés dans l’interface. Côté ingestion, vous pouvez par défaut ingérer les logs système, les logs des conteneurs, ou même absorber des logs externes que vous auriez redirigés vers le serveur (via le port syslog 514 ou un autre).

Côté interface graphique, quelques options d’affichage sont disponibles (la densité des logs, le comportement et le style de la frise temporelle), ainsi que la langue et la timezone.

Vous pouvez aussi exporter la partie de logs affichée sur votre écran. Enfin il existe une « Danger zone » avec quelques stats et la possibilité de purger la base des logs.

Au final, pour une entrée en matière, c’est vraiment un outil que j’utilise au quotidien pour mon lab. Ça m’a permis de comprendre à quel point l’IA peut transformer un workflow, qu’il soit rédactionnel (depuis longtemps) ou très technique (dans le développement logiciel). Rappelez-vous que je ne connaissais pas le Go avant de construire ces projets !

Après chaque itération, je passais autant de temps à découvrir et analyser le code produit par Claude ou Mistral qu’à leur demander de le réaliser en fonction de mes spécifications.

Bref, j’espère que LogStream vous aidera aussi de votre côté. À votre disposition pour échanger, bien sûr, et merci encore à Benjamin, dont l’interview m’a convaincu qu’il valait le coup de publier ce qu’on réalise, sans honte ni appréhension, ni peur du regard inquisiteur des autres.

Références :
– LogStream, à découvrir et récupérer sur mon Gitea : https://gitea.vlab.bzh/vLab-BZH/logstream.git
– L’ensemble des mes projets : https://gitea.vlab.bzh/explore/repos

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *