ELX-Software

Supervision de serveurs

ELX-HealthMonitor

Ce qu'un serveur Linux fait maintenant et ce qu'il faisait la semaine dernière

Un agent de supervision avec interface web, historique en SQLite et alertes par courriel. Un exécutable unique sans dépendances : l'interface est dans le binaire et la base se crée toute seule. Sur un Celeron de quatre ans, il coûte environ quatre pour cent d'un cœur et onze mégaoctets de mémoire.

v1.0.0 LinuxARM Gratuit

Lu dans le noyau, non deviné

Tout provient directement de /proc, /sys et smartctl. Aucun collecteur à installer, aucune base de séries temporelles à faire tourner et aucun couple agent-serveur à garder d'accord.

Les disques avant la panne

Santé SMART, température, heures de fonctionnement, secteurs réalloués et en attente, erreurs CRC, usure des SSD et volume total écrit — avec le tableau complet des attributs quand vous voulez regarder de plus près.

Le RAID, y compris la part inconfortable

État de la grappe, niveau, membres, disques défaillants et avancement de la resynchronisation — plus la carte des intentions d'écriture, qui dit si les copies sont réellement identiques à cet instant, et le nombre d'écarts relevés à la dernière vérification.

Les services avec leurs entrées-sorties

Chaque unité systemd avec son processeur, sa mémoire, ses lectures et écritures disque, son nombre de tâches et ses redémarrages — et des boutons pour démarrer, arrêter et changer le démarrage automatique.

Des alertes qui ne crient pas au loup

Une règle porte un délai de maintien : une pointe de dix secondes à pleine charge n'envoie rien, dix minutes à ce niveau envoient un courriel. C'est ce seul réglage qui sépare les messages qu'on lit de ceux qu'on filtre.

Un historique qui ne grossit pas sans fin

Trois jours en pleine résolution, puis des tranches de cinq minutes gardant la moyenne, le minimum et le maximum, et rien de plus vieux qu'un mois. Les pointes survivent à l'éclaircissage ; les gigaoctets non.

Ce qui est mesuré

SectionMesures
ProcesseurCharge totale et par cœur, user/system/iowait/steal, fréquence, charge moyenne, changements de contexte, file d'attente
MémoireOccupée, disponible, cache, tampons, slab, pages modifiées, échange et intensité de son usage
DisquesDébits de lecture et d'écriture, IOPS, latence, occupation du périphérique, modèle, capacité
Systèmes de fichiersOccupé, libre, pourcentage, inodes
SMARTSanté, température, heures de fonctionnement, secteurs réalloués et en attente, erreurs CRC, usure des SSD, volume écrit sur la durée de vie, tableau complet des attributs
RAIDÉtat des grappes md, niveau, membres, disques défaillants, avancement et vitesse de resynchronisation, égalité actuelle des copies et écarts de la dernière vérification
RéseauOctets et paquets entrants et sortants, erreurs et pertes, état du lien, vitesse du port, adresses, MTU
TempératureTous les capteurs hwmon et zones thermiques ACPI, plus les températures des disques issues du SMART
ServicesÉtat et démarrage automatique des unités systemd, processeur, mémoire, entrées-sorties par service, nombre de tâches, redémarrages
ProcessusLes premiers par processeur et par mémoire, activité disque, propriétaire, unité

Chaque section se désactive séparément, et une section désactivée n'est pas interrogée du tout.

La question sur le RAID qu'il faut poser

Une grappe en miroir garde les mêmes données sur les deux disques, mais les écritures ne les atteignent pas au même instant. Le noyau note les zones susceptibles de différer dans une carte des intentions d'écriture, et cet agent montre cette carte directement : tant que le nombre de zones sales est nul, les copies sont identiques ; au-delà, une resynchronisation est en cours.

À côté figure le nombre d'écarts relevés lors de la dernière vérification d'intégrité. Une valeur non nulle signifie qu'un disque ou un contrôleur a rendu des données différentes des deux moitiés d'un miroir — et c'est précisément la panne pour laquelle la supervision existe, et précisément celle qu'un voyant vert « grappe saine » dissimule.

Ce que cela coûte à faire tourner

Les mesures coûteuses suivent leur propre calendrier, à part de la boucle principale : réveiller cinq disques toutes les trois secondes pour leur demander leur température serait pire que de ne pas les surveiller.

RéglageDéfautCe qu'il gouverne
interval_sec3 sLa boucle principale d'interrogation
services.interval_sec15 sUn parcours complet des unités systemd
disk.smart_interval_sec900 sL'interrogation SMART — c'est elle qui réveille les disques
storage.persist_interval_sec30 sL'écriture d'un instantané dans l'historique

Mesuré sur un Celeron J1900 à quatre cœurs, avec 165 unités systemd et cinq disques : environ quatre pour cent d'un cœur et onze mégaoctets de mémoire. Sur un Xeon E5-2690, moins de trois pour cent d'un cœur.

L'interface

  • Le navigateur retient vos choix : la période de chaque graphique, les courbes masquées d'un clic sur la légende, et les filtres des tableaux de services et d'événements. Un rechargement n'en efface aucun.
  • Toutes les courbes montent depuis zéro, l'unité de l'axe suit la plage des valeurs et le nombre de décimales suit le pas de la grille — deux graduations voisines ne portent donc jamais la même étiquette.
  • Après une mise à jour, un onglet ouvert remarque de lui-même le changement de version, le dit et se recharge, au lieu de laisser une interface périmée dans le cache du navigateur.
  • Les boutons de redémarrage et d'extinction de la machine sont dans l'en-tête ; si vous n'en voulez pas, une clé de configuration les retire.
  • Chaque action irréversible se trouve derrière une confirmation qui explique la conséquence, et le bouton porte le nom de l'action plutôt que « OK ».

En bref

Systèmes d'exploitation
Debian et Ubuntu avec systemd
Architectures
amd64, arm64, armhf
Interface web
Port 8555 par défaut
Historique
SQLite ; 3 jours bruts, 31 jours condensés
Dépendance facultative
smartmontools, pour la section SMART
Coût habituel
~4 % d'un cœur, ~11 Mo de mémoire
Alertes
Courriel par SMTPS, STARTTLS ou en clair
Configuration
Interface web, ou config.json

ELX-HealthMonitor

Ce qu'un serveur Linux fait maintenant et ce qu'il faisait la semaine dernière

Télécharger