Supervision et alertes
Ce que surveille navin-manager
| Portée | Définition | Condition (seuils par défaut avertissement / critique) |
|---|---|---|
| Hôte | host_heartbeat_lost | Aucun signal depuis 60 / 120 secondes. Résolue dès que l'agent envoie à nouveau un signal. |
| Hôte | host_disk_usage | Système de fichiers le plus rempli parmi la racine et les répertoires Navin (/etc/navin, /opt/navin, /var/lib/navin, /var/log/navin) à 80 / 90 pour cent. Les autres montages restent visibles dans les métriques de l'hôte. |
| Hôte | host_memory_usage | Mémoire utilisée à 85 / 95 pour cent. |
| Hôte | host_load | Charge sur 5 minutes divisée par le nombre de CPU à 1,5 / 3. |
| Hôte | host_preflight_failed | Un contrôle préalable de l'hôte a échoué. |
| Hôte | agent_version_mismatch | La version de l'agent diffère de celle du serveur. |
| Composant | component_down | Un composant qui doit tourner ne tourne pas. |
| Composant | component_health | Les contrôles de santé d'un composant démarré échouent. |
| Composant | config_stale | La configuration a changé et le composant tourne encore avec la précédente. |
| Cluster | certificate_expiry | Un certificat émis par la console expire dans 30 / 7 jours. |
| Cluster | operation_failed | Une opération du cluster a échoué au cours des dernières 24 heures. |
| Console | manager_engine_lag | Dernier passage du moteur d'opérations il y a 30 / 120 secondes. |
| Console | manager_database | Aller-retour vers la base de la console de 200 / 1000 millisecondes. |
Chaque définition peut être désactivée, et ses seuils et son intervalle modifiés, dans Alertes, Définitions. Une alerte conserve son historique (changements d'état avec la valeur mesurée), peut être acquittée avec une note et se résout d'elle-même quand la condition disparaît. Les hôtes en maintenance ne déclenchent aucune alerte.
Notifications
Alertes, Destinataires envoie les alertes qui atteignent la sévérité minimale d'un destinataire :
| Type | Détails |
|---|---|
| Courriel | SMTP de Administration, Réglages (STARTTLS et authentification pris en charge). |
| Webhook | POST HTTPS avec l'en-tête X-NM-Signature: t=<unix>,v1=<hex>, où v1 est le HMAC-SHA256 de <t>.<corps> avec le secret du destinataire. Refusez un horodatage de plus de 5 minutes. |
| Syslog | Messages RFC 5424 en UDP, TCP ou TLS vers le syslog de Administration, Réglages (le SIEM de la banque). |
Les envois en échec sont retentés, puis marqués en échec après 5 tentatives. Tester envoie une notification de test.
Auto-supervision de la console
Système affiche la santé de la console : latence de la base, retard du moteur d'opérations, tâches en attente,
agents connectés et perdus, dernière exécution et dernière erreur de chaque tâche périodique. Les mêmes données
sont servies par GET /api/v1/system/health (permission system:read).
GET /metrics sert les métriques Prometheus. Il exige Authorization: Bearer <NM_METRICS_TOKEN> ; en production, le
jeton est obligatoire.
| Métrique | Étiquettes | Signification |
|---|---|---|
nm_build_info | version | Version de la console. |
nm_hosts | cluster, state | Hôtes par cluster et par état. |
nm_host_components | state | Instances de composants par état. |
nm_operations | status | Opérations par état. |
nm_tasks_queued | Tâches en attente d'un agent. | |
nm_alerts | severity | Alertes ouvertes par sévérité. |
nm_engine_lag_seconds | Secondes depuis le dernier passage du moteur d'opérations. | |
nm_database_latency_ms | Aller-retour vers la base de la console. | |
nm_scheduler_job_errors | job | 1 quand la dernière exécution d'une tâche périodique a échoué. |
nm_agents_online | Agents qui ont envoyé un signal pendant la dernière minute. |
La disponibilité du processus se lit sur GET /readyz (base joignable) et sa vivacité sur GET /healthz.
Supervision de la plateforme gérée
Le catalogue contient une chaîne d'observabilité complète que navin-manager installe comme n'importe quel service : Prometheus, Alertmanager, OpenSearch, OpenSearch Dashboards, Jaeger, Opik, Alloy, l'OpenTelemetry Collector et les exportateurs (nœud, Redis, PostgreSQL, blackbox). La plateforme ne livre pas de serveur de tableaux de bord (ADR-0169) : les machines et les services se suivent dans la console elle-même (onglet de supervision des services avec son historique en base, métriques des machines, export de télémétrie vers ClickHouse), les journaux dans OpenSearch Dashboards, les traces dans Jaeger et Opik, les métriques et les alertes dans Prometheus et Alertmanager, dont les règles d'alerte et d'enregistrement restent en place. Un Grafana déjà exploité par le client peut toujours être branché sur ces sources ; la plateforme ne le déploie jamais (licence AGPL, ADR-0101).
Prometheus découvre les composants à interroger auprès de la console :
GET /api/v1/clusters/<id du cluster>/sd/prometheus renvoie un groupe de cibles par instance de composant qui expose
des métriques, avec les étiquettes nm_cluster, nm_service, nm_component et nm_host. Le service Prometheus du
catalogue configure cette découverte avec un jeton d'API stocké dans un fichier de mode 0640 : créez un jeton
restreint à cluster:read dans Profil, Jetons d'API et donnez-le au paramètre du service Prometheus.
Alloy envoie le journal des unités navin-* et les fichiers de /var/log/navin en OTLP au collecteur
OpenTelemetry, qui les écrit dans OpenSearch, où OpenSearch Dashboards les lit.