InfraGuard

Serveurs (séries temporelles de charge)

Charge, CPU et mémoire par serveur sous forme d’anneaux indicateurs, complétés par des graphiques chronologiques, sur l’écran Infrastructure ▸ Serveurs.

Vue d’ensemble — à quoi sert cet écran

Infrastructure ▸ Serveurs (/infra/servers) affiche la charge moyenne · CPU · mémoire de chaque nœud serveur enregistré selon une perspective chronologique. Là où l’écran Santé saisit « l’état de chaque nœud à l’instant présent » grâce à des sondes en direct, l’écran Serveurs se concentre sur « la façon dont la charge a évolué au cours des dernières heures, voire des derniers jours ». Il s’agit d’une réimplémentation du monitoring/part de stats-design (load_average · cpu_usage · memory_usage).

Une carte par nœud :

Les métriques proviennent de la table héritée server_status (en lecture seule). Le constructeur ServerMetricService restreint la requête à une fenêtre récente de seq (ce qui évite un balayage complet lent) et applique un cache de 20 secondes. La grille de cartes prend en charge la réorganisation par glisser-déposer + masonry et se rafraîchit automatiquement par interrogation toutes les 30 secondes.

server_status est alimentée par le collecteur Node run_report.js, qui s’exécute en dehors de Laravel selon un cycle d’environ 5 minutes. La résolution de l’axe temporel est donc d’environ 5 minutes, et l’écran se rafraîchit par interrogation (et non par envoi temps réel / Reverb).


Quand l’utiliser

La surveillance de session en direct (avec les points de service nginx/php/mysql) se trouve dans Santé, les graphiques d’octets/paquets d’E/S réseau dans Trafic, et la santé disque / RAID dans Stockage et RAID.


Disposition

Barre de KPI supérieure

Calculée par ServerMetricService::kpi().

KPI Signification
Serveurs Nombre total de nœuds présents dans la fenêtre
En ligne Nœuds ayant remonté loadavg au cours des 2 derniers cycles de collecte
Hors ligne Total − en ligne
Charge maximale Nœud dont la charge sur 1 minute est la plus élevée + alias
CPU maximal Nœud dont le CPU% actuel est le plus élevé + alias
Mémoire maximale Nœud dont le pourcentage de mémoire actuel est le plus élevé + alias

Sélecteur range

Sélectionne la fenêtre d’affichage (nombre de points de la fenêtre de seq). Le choix est conservé dans le localStorage (infr:range:infra-servers) et persiste d’une visite à l’autre.

range points de seq ≈ fenêtre réelle (cycle de 5 min)
1h 12 ~1 heure
6h 72 ~6 heures
24h 288 ~24 heures (par défaut)
3d 864 ~3 jours

range est converti en « les N derniers cycles de collecte » (et non en une durée absolue). Avec un cycle de 5 minutes, 24h ≈ 288 points. Un nœud qui remonte peu fréquemment peut afficher une fenêtre réelle plus courte pour un même range — l’étiquette de fenêtre en bas indique la durée réelle sous la forme 24h/6h/45m/2d.

Carte de nœud

┌──────────────────────────────────────────────┐
│ label · alias · IP           online / last Nm │   ← en-tête (libellé enrichi depuis infr_instance)
│  ( Load )   ( CPU )   ( MEM )                    │   ← 3 anneaux indicateurs (valeur actuelle)
│  ▁▂▅▇▅▃  sparkline (polyligne SVG)              │
│  peak · disk 42% · net out 1,234      [Détails] │   ← pied
└──────────────────────────────────────────────┘

La bordure de la carte et les anneaux sont peints avec une teinte de seuil ; la gravité globale de la carte suit la pire des trois métriques.

Métrique good warn crit
Load (1 min) < 8 ≥ 8 ≥ 16
CPU % < 70 ≥ 70 ≥ 90
MEM % < 85 ≥ 85 ≥ 95

L’anneau Load est normalisé de sorte à être plein à une charge de 8 (LOAD_FULL=8) — en cohérence avec le seuil warn. Sur une machine dotée de nombreux cœurs, une charge de 8 n’est pas nécessairement dangereuse : lisez donc toujours aussi la valeur absolue indiquée par le nombre au centre de l’anneau.

Détail déplié (ECharts + statistiques)

Un appui sur [Détails] agrandit la carte verticalement ; masonry réagence automatiquement le changement de hauteur.


Mode d’emploi

  1. Ouvrez /infra/servers → les cartes de nœuds sont disposées par ordre croissant d’alias.
  2. Choisissez une fenêtre d’observation avec le sélecteur range (1h/6h/24h/3d). La requête est relancée immédiatement, indépendamment de l’interrogation périodique.
  3. Ouvrez le graphique chronologique et le tableau de statistiques d’un nœud avec [Détails].
  4. Survolez le graphique pour lire les valeurs CPU/MEM/Load à un instant donné grâce au réticule.
  5. Faites glisser les cartes pour remonter en haut les nœuds que vous surveillez le plus — l’ordre est conservé dans le localStorage (infr:order:infra-servers).
  6. Utilisez le bouton plein écran de l’en-tête pour masquer la navigation supérieure et consulter l’écran en mode tableau de bord.

L’écran se rafraîchit automatiquement toutes les 30 secondes en interrogeant /infra/servers/live (aucune interaction nécessaire). Cet écran ne comporte aucune action d’écriture ni de commande — il est purement d’observation.

Le front-end qui interroge décide s’il faut rafraîchir grâce au jeton de changement peu coûteux rev (= le dernier seq de server_status). Tant qu’un nouveau cycle de collecte n’est pas arrivé, l’écran reste en l’état — il n’est pas « figé », il n’existe simplement pas encore de nouvel instantané.


Sources de données

La source est la table héritée server_status (BD MAIN, schéma clé-valeur part, en lecture seule). Elle interprète directement la convention de stockage de run_report.js.

part Format de la valeur Signification Usage dans les séries
loadavg "1m 5m 15m" séparées par des espaces (p. ex. "0.50 0.42 0.38") Charges moyennes La série et l’anneau n’utilisent que la charge sur 1 minute ; le pied affiche aussi 5/15 min
top "NN%" (p. ex. "3.6%") Utilisation CPU en mode utilisateur Série/anneau CPU
free "NN%" Utilisation mémoire = round(used/total×100) Série/anneau MEM
df-data / df- / df-home JSON {p,u,a} Pourcentage disque (p) · utilisé (u) · taille (a) Badge disque le plus récent (priorité df-data → df- → df-home)
traffic-out numérique Delta de paquets sortants réseau Série/pied net

Discipline de requête et de mise en forme :

L’enregistrement et les identifiants du collecteur run_report.js qui alimente server_status sont gérés dans Administration ▸ Collecteurs.


Accès

Échelle des niveaux : demo=1 · staff=5 · admin=10 (voir Niveaux RBAC).


Dépannage et FAQ

Je ne vois que « Aucune métrique de serveur. » Il n’existe aucun instantané récent dans server_status. Vérifiez que le collecteur run_report.js fonctionne et qu’il est enregistré dans Collecteurs. Vérifiez également la connexion à la BD héritée (MAIN).

Un nœud apparaît hors ligne. Cela signifie qu’aucun loadavg n’a été remonté au cours des 2 derniers cycles de collecte. Vérifiez l’état d’exécution de run_report sur ce nœud, son horloge (dérive) et le réseau. L’étiquette relative last_seen vous indique la date de sa dernière remontée.

Une carte affiche un alias (p. ex. sol) au lieu d’un nom lisible. Cet alias n’est pas enregistré dans les Instances (infr_instance). Enregistrez l’instance et son name devient le libellé, avec ip_public/ip_private affichés comme IP.

Le badge disque est vide. Ce nœud n’a remonté aucun de df-data/df-/df-home au format JSON {p,u,a}. Pour l’utilisation disque détaillée et la santé RAID, utilisez Stockage et RAID.

L’anneau Load paraît toujours plein. L’anneau Load est normalisé avec un plafond à une charge de 8. Sur des serveurs à nombreux cœurs, une charge de 8 peut être normale : jugez donc d’après la valeur absolue affichée au centre de l’anneau. Ne concluez pas au danger sur la seule base des seuils de teinte (warn 8 / crit 16).

L’interrogation a lieu toutes les 30 s mais rien ne change. Soit (1) un nouveau cycle de collecte (~5 min) n’est pas encore arrivé, soit (2) vous vous trouvez dans la fenêtre de cache de 20 secondes. Confirmez les mises à jour réelles via stamp, l’étiquette de fenêtre et rev (le dernier seq).

J’ai réglé range sur 3d mais la fenêtre paraît courte. range signifie « les N derniers cycles » : un nœud qui collecte peu fréquemment couvre donc une durée réelle courte. L’étiquette de fenêtre du bas affiche la durée réelle (45m/6h/2d). Le plafond du nombre de points est de 1000.


Rubriques liées

서버 — 부하·CPU·메모리 시계열
서버 — 부하·CPU·메모리 시계열
카드를 펼친 결합 선그래프
카드를 펼친 결합 선그래프