Kula : un outil de surveillance de serveur Linux autonome
Outil de surveillance de serveur Linux léger et autonome. K U L A Outil de surveillance de serveur Linux léger et autonome.** Site Web | Démo | Dépendances Docker Hub Zéro.
En bref
- De quoi s’agit-il ?
- Comment le binaire Go collecte des métriques, les stocke dans des tampons en anneau hiérarchisés et fournit un tableau de bord Web, un TUI et un assistant Ollama optionnel.
- À qui s’adresse-t-il ?
- Le README de Kula décrit un outil de surveillance à binaire unique avec un moteur de stockage personnalisé et une longue liste de sources de métriques. Le projet fait de fortes déclarations sur la confidentialité et utilise AGPL-3.0, mais ne documente pas les limites de performance, les canaux de support ou les audits de sécurité.
- Puis-je l’utiliser commercialement ?
- Oui, sous conditions strictes. AGPL-3.0 est une licence à copyleft réseau : si des personnes utilisent une version modifiée via un réseau, par exemple comme service hébergé, vous devez leur proposer son code source sous la même licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 1 jour.
- En quel langage est-il écrit ?
- Principalement Go, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Un binaire unique qui lit le noyau : 1
Kula est un outil de surveillance de serveur Linux écrit en Go. Le README le décrit comme léger et autonome : un seul binaire, pas de base de données externe, aucune dépendance d'exécution. Il collecte des métriques système chaque seconde en lisant directement depuis /proc et /sys, puis les stocke dans un moteur de stockage intégré à tampons en anneau hiérarchisés. Le même binaire sert un tableau de bord Web en temps réel via HTTP et WebSocket, ainsi qu'un TUI de terminal.
Un binaire unique qui lit le noyau : 2
Le diagramme d'architecture du README montre des collecteurs alimentant les données en direct vers le moteur de stockage, le serveur Web et le TUI. Le moteur de stockage écrit dans des fichiers binaires de taille fixe qui se réécrivent lorsqu'ils sont pleins, et au démarrage, Kula restaure le cache des derniers échantillons et les tampons d'agrégation en attente. Le README ne spécifie pas le nombre maximal d'hôtes surveillés ni les limites de mise à l'échelle, cela reste donc une question de vérification.
Les métriques qu'il collecte : 1
Le README liste quinze catégories de métriques : utilisation du CPU et nombre de cœurs, charge GPU, puissance et VRAM, moyennes de charge, détails mémoire et swap, débit réseau et erreurs par interface, I/O disque et utilisation du système de fichiers par périphérique, temps de fonctionnement et entropie du système, nombre de processus, utilisation des ressources propres de Kula, lectures de température, état de la batterie via /sys/class/power_supply, statistiques de conteneurs pour Docker, podman et cgroups bruts, statistiques d'applications pour PostgreSQL, MySQL/MariaDB, nginx et apache2, et métriques personnalisées.
Les métriques qu'il collecte : 2
Le README note que la surveillance des GPU NVIDIA peut nécessiter une configuration supplémentaire, pointant vers une page wiki. La source ne donne pas de détails sur la façon dont les métriques d'application sont collectées ni sur l'interface des métriques personnalisées, donc ces spécificités ne sont pas établies.
Stockage en tampon en anneau et agrégation hiérarchisée : 1
Le moteur de stockage de Kula est un système de tampon en anneau personnalisé. Il écrit les métriques dans des fichiers binaires de taille fixe avec une capacité stricte, donc les nouvelles données écrasent les entrées les plus anciennes. Le README montre trois niveaux : le niveau 1 stocke les échantillons bruts de 1 seconde avec une limite par défaut de 250 Mo, le niveau 2 stocke les agrégations de 1 minute (moyenne, min, max) avec une limite par défaut de 150 Mo, et le niveau 3 stocke les agrégations de 5 minutes avec une limite par défaut de 50 Mo.
Stockage en tampon en anneau et agrégation hiérarchisée : 2
Au démarrage, Kula restaure le cache des derniers échantillons et reconstruit les tampons d'agrégation en attente afin de continuer à fournir les données récentes et les cumuls après un redémarrage. Le README n'explique pas comment les tailles des niveaux sont configurées ni si elles sont ajustables dans config.yaml, bien qu'il dise que tous les paramètres y résident.
Tableau de bord, TUI et l'assistant Ollama optionnel : 1
Le tableau de bord Web intégré est une application à page unique basée sur Chart.js avec des jauges SVG personnalisées. Il se connecte via WebSocket pour les mises à jour en direct et revient à l'API d'historique pour les plages plus longues. Les fonctionnalités listées incluent le zoom par sélection glissée (qui met en pause le flux en direct), un mode focus, des limites d'axe Y configurables, des sélecteurs par périphérique pour le réseau, les I/O disque et la thermique, une disposition en grille ou en liste empilée, des alertes pour la synchronisation de l'horloge, la faible entropie et la surcharge du système, des thèmes clair et sombre, et un point de terminaison d'exportateur Prometheus.
Tableau de bord, TUI et l'assistant Ollama optionnel : 2
Le TUI de terminal est décrit comme une lecture rapide en direct, gardant CPU, mémoire, trafic, pression de stockage, santé de l'hôte et tendances à court terme visibles. Kula intègre également un assistant IA optionnel via un modèle Ollama local ; le panneau prend en charge les conversations multi-sessions, l'analyse par graphique avec données CSV, l'appel d'outils agentiques pour les métriques (jusqu'à cinq tours par tour), un sélecteur de modèle, un panneau déplaçable et redimensionnable, et des réponses en streaming.
Conclusion éditoriale
Le README de Kula décrit un outil de surveillance à binaire unique avec un moteur de stockage personnalisé et une longue liste de sources de métriques. Le projet fait de fortes déclarations sur la confidentialité et utilise AGPL-3.0, mais ne documente pas les limites de performance, les canaux de support ou les audits de sécurité. Ces détails devraient être vérifiés ailleurs, et les sommes de contrôle fournies pour chaque version offrent un moyen de vérifier les binaires distribués.
Notes de la communauté