InfraGuard

Lire la page d’accueil Vue d’ensemble

La console d’accueil convergente qui réunit sur un seul écran les scores composites de disponibilité et de sécurité, les cartes KPI, l’anneau des détections et les bandes de serveurs en direct sur toute la largeur.

Vue d’ensemble — ce que fait cet écran

Vue d’ensemble est le premier écran après la connexion (/). Elle traverse la disponibilité et la sécurité dans un volet unique : la bande supérieure affiche les jauges de santé composites, les cartes KPI et l’anneau des détections ; la bande inférieure affiche les séries temporelles charge / mémoire / réseau / stockage du parc de serveurs.

Caractéristiques principales :

Tous les chiffres sont des données réelles chargées dans la base par des collecteurs qui s’exécutent en dehors de Laravel. Si la base héritée est injoignable ou vide, le contrôleur bascule proprement vers une maquette (démo) structurellement identique ; dans ce cas source vaut mockup et rev vaut 0, si bien que le frontend n’effectue pas de nouveau rendu.

Quand l’utiliser

Disposition

Bandeau supérieur

Le titre et la signature (« Réaction immédiate · Prêt d’avance · Toujours restaurable ») puis, à droite, l’horodatage de la collecte (stamp) et le nombre d’hôtes, un commutateur LIVE/PAUSED et un bouton plein écran.

Score de santé (à gauche)

Deux jauges en anneau (disponibilité, sécurité) avec, en dessous, un panneau de preuves à deux colonnes :

Colonne 6 symboles (info-bulle au survol) Origine du score
Base de la disponibilité disponibilité · charge · mémoire · disque · RAID · sauvegarde avail_parts issu de aggregate() (composition tenant compte de la durée, 0–100)
Base de la sécurité IDS · IA · web · pare-feu · réputation · TLS PostureService (parts de résidu non traité sur 24 h normalisées en scores de santé)

Chaque symbole est coloré selon metric_cls : ≥90 good · ≥70 warn · en dessous crit · sans données, affichage de — (na).

Cartes KPI (centre 3×2 + 2 conditionnelles)

Carte Valeur Sous-ligne
Serveurs en ligne/total nombre de hors ligne ou « tous en ligne »
Pic de charge charge maximale de l’ensemble visible hôte · « il y a N min »
Pic de mémoire % de mémoire maximal de l’ensemble visible hôte · « il y a N min »
Pic réseau maximum de paquets (le plus élevé entre entrée et sortie) hôte · « il y a N min »
Menaces ouvertes (= blocages Kitsune) bloquées aujourd’hui
Sauvegarde % de réussite sur 14 jours nombre d’exécutions sur 24 h · dernière durée · type dominant
Service web (conditionnelle) up/total hôte le plus lent · ms
Base de données (conditionnelle) up/total base la plus sollicitée · lentes sur 24 h · en file

Les pics de charge/mémoire/réseau sont calculés côté frontend comme « le maximum de la série sur les serveurs actuellement visibles (current_servers) ». Autrement dit, changer le partage d’écran ou la page change les serveurs pris en compte par les cartes de pic. L’étiquette « il y a N min » est déduite de la position de seq (times[idx]) où ce pic a été observé pour la première fois.

Panneau de performance des services (à droite)

Affiche un service web et un service de base de données sous forme de jauges compactes — individuels et non additionnés, afin qu’un service emballé ne soit pas noyé dans une moyenne. Utilisez la liste déroulante (« Choisir un autre service ») pour changer de cible :

Anneau des détections (à droite)

Les détections sur 24 heures en quatre catégories (IDS/IA/web/balayage). Anneau ECharts + une légende HTML (nom · compteur abrégé · barre de proportion).

En bas — bandes de serveurs sur toute la largeur

Sous la barre d’outils Server stats (puce RAID · puce « <1G libre » · curseur de hauteur · libellé de plage · sélecteur de plage temporelle · boutons de partage) se trouvent quatre bandes :

Comment l’utiliser

  1. Les jauges d’abord — lisez la couleur des deux scores. Si elle est basse, survolez les cellules rouges (crit) ou ambre (warn) parmi les 6 symboles de preuve en dessous pour voir quel axe est pénalisé.
  2. Cartes KPI — repérez les valeurs aberrantes (serveurs hors ligne, menaces, taux de réussite des sauvegardes). Utilisez le « il y a N min » des cartes de pic pour dater l’événement.
  3. Changer la fenêtre temporelle — les boutons 6h · 24h · 3d en bas à droite modifient la fenêtre des bandes. Le choix est conservé dans localStorage (infr:range:overview) et redemandé au serveur via le paramètre range. Les cartes KPI et les jauges de santé restent figées sur une notion de 24 h (seules les bandes changent de fenêtre).
  4. Partage d’écran — les boutons All · 2 · 3 répartissent le parc en pages (◀▶). Pratique pour l’étaler sur plusieurs moniteurs.
  5. Hauteur et échelle — le curseur règle la hauteur des bandes (80–360px) ; le Lin/Log de chaque bande règle l’échelle de l’axe y (utile face aux hôtes très irréguliers).
  6. Direct / plein écran — le commutateur LIVE du bandeau active ou désactive l’interrogation ; full screen masque la barre de navigation supérieure pour un mode mur de supervision.

Plage → nombre de points

La fenêtre des bandes du bas est convertie en un nombre de points de seq d’après la cadence de collecte de server_status (environ 5 min).

range points de seq
6h 72
24h 288 (par défaut)
3d 864

Comportement de la mise à jour en direct (interrogation)

every 30s  ──▶  GET /overview/rev   (cheap latest seq)
                   │  rev changed?
                   ├─ no  → skip (0 bandwidth)
                   └─ yes → GET /overview/live?range=<window>  → swap data + re-render charts

Sources de données

Toutes en lecture seule. L’application lit telles quelles les tables de ressources héritées.

Axe Table / service Connexion Usage
Parc de serveurs / séries server_status (loadavg·free·df-*·traffic-out) legacy (MAIN) bandes charge/mémoire/disque/réseau, disponibilité
RAID storage_status (status_summary) legacy preuve Optimal/Degraded/Failed
Sauvegarde backup_history legacy taux de réussite sur 14 jours · dernière · type
IDS suricata_alert_ct legacy_glory anneau des détections · base de la sécurité (sev 1·2)
Anomalie IA kitsune_detail_log (is_blocked) legacy_glory détections · menaces · base de la sécurité
Attaque web nginx_meta_ct (is_suspicious) legacy_glory détections · taux de requêtes suspectes
Réputation / blocage blacklist_info legacy_glory bloquées aujourd’hui · pression des nouveaux blocages
Hygiène TLS suricata_tls_ct (version) legacy_glory taux de TLS faible (<1.2)
Performance du service web WebMetricService::dashboard() (infr_web_metric) central KPI web · panneau de performance
Performance BD DbCollectorService::latest() · infr_db_metric · infr_collector (access=database) central KPI BD · panneau de performance
Exposition du pare-feu FirewallService::dashboard() (infr_instance_firewall) central base de la sécurité fw

Formules des scores composites

Disponibilité = moyenne pondérée des axes qui possèdent des données (les poids sont renormalisés). Chaque axe examine toute la fenêtre affichée et pénalise selon « combien de temps (durée) et avec quelle gravité (pic) » le seuil a été franchi.

Axe Poids Base de la pénalité
disponibilité 0.30 proportion de cycles sans réponse après le premier rapport
charge 0.15 dépassement de la charge moyenne ≥ 8 (≥16 = totalement surchargé)
mémoire 0.15 utilisation > 99% (100% = pression totale)
disque 0.15 espace libre sur la racine < 1G (partitions mesurées uniquement, 0G = risque total)
RAID 0.15 un nœud Degraded/Failed obtient 0
sauvegarde 0.10 taux de réussite sur 14 jours

Sécurité = moyenne pondérée des 6 métriques de preuve (uniquement celles qui sont présentes). Chacune normalise une mesure de 24 h de glory en un score de santé (0–100) — plus le volume ou le taux est élevé, plus la pénalité est forte (pénalité maximale 45 → plancher 55). Ce n’est que lorsque toutes les métriques sont indisponibles que l’on retombe sur le scalaire heuristique de detections().

Métrique Poids Source (24 h) Pénalité maximale à
ids 0.22 nombre d’alertes IDS de gravité élevée (sev 1·2) 200
ai 0.22 nombre de blocages Kitsune 500
web 0.20 taux % de requêtes suspectes nginx 8%
rep 0.14 nombre de nouvelles IP bloquées aujourd’hui 400
tls 0.12 taux % de TLS faible (<1.2) 5%
fw 0.10 ports critiques sur IP publique ×2 + critiques + exposition non gérée 200

TTL du cache

Cible TTL Clé
Données réelles de la vue d’ensemble (build) 30s infr:overview:data:v1:{points}
Panneau de performance des services (web/db) 15s infr:ov:perf
Base de la sécurité (PostureService) 300s infr:sec:posture:v1:<range>

Accès

Dépannage et FAQ

Q. Les jauges et les cartes affichent des valeurs qui ressemblent à une démonstration. Il s’agit du repli sur la maquette, déclenché lorsque la connexion à la base héritée (legacy/legacy_glory) échoue ou ne contient aucune donnée. Si le source de la charge utile vaut mockup et rev vaut 0, la vraie base est indisponible. Vérifiez la connectivité de la base et l’ingestion des collecteurs (Administration ▸ Collecteurs).

Q. Un symbole de preuve affiche —. Cet axe n’a pas de données (il est exclu de la pondération). Par exemple, si la CMDB de pare-feu (infr_instance_firewall) est vide, fw affiche — — il faut des actifs de pare-feu, pas l’ancienne table firewall_status. RAID est exclu lorsqu’aucun storage_status.host correspondant n’existe.

Q. Les données ne se mettent pas à jour. Vérifiez (1) si le commutateur du bandeau indique PAUSED et (2) si l’onglet est en arrière-plan (l’interrogation se met en pause tant qu’il est masqué). Les collecteurs ingèrent selon une cadence d’environ 5 minutes en dehors de Laravel : même avec une interrogation de 30 s, la valeur réelle peut donc accuser plusieurs minutes de retard. Si rev n’a pas changé, la charge utile lourde n’est pas téléchargée.

Q. Le serveur du pic de charge diffère selon la vue. Le pic est calculé sur l’ensemble de serveurs de la vue courante (partage/page). Pour raisonner sur tous les serveurs, réglez le partage sur All.

Q. L’entrée réseau est toujours à 0. server_status ne dispose d’aucune source entrante par alias : net_in est donc rempli avec 0 et seul traffic-out (paquets) est mesuré. Pour la bande passante détaillée, voir Trafic (E/S réseau).

Q. Changer la plage ne fait pas bouger les KPI ni les jauges. C’est normal. La range (6h/24h/3d) s’applique uniquement aux bandes du bas ; les cartes KPI et les jauges de santé relèvent d’une notion fixe de 24 h.

Voir aussi

개요 — 헬스 스코어·근거 심볼·서버 통계
개요 — 헬스 스코어·근거 심볼·서버 통계