Chapitre 19 Conformité, stockage & exploitation Admin : #pAlerts

Tableau de bord d'exploitation, alertes et télémétrie en direct

Le tableau de bord d'exploitation (#pOps) affiche en direct et sur un historique de 24 heures : e-mails par minute entrants et sortants, courrier différé et rejeté, taux de spam, échecs de connexion, taille de la file d'attente et ancienneté du plus vieux message, connexions actives par protocole, CPU, mémoire, espace disque libre, taille de la base de données, expiration des certificats et nœuds du cluster. Les alertes (#pAlerts) signalent les dépassements par e-mail, webhook, SMS, Telegram, Signal ou WhatsApp. Les outils externes lisent les mêmes données via /metrics (Prometheus), OpenTelemetry ou le flux d'événements en direct (Server-Sent Events).

Conseil d'exploitation & note d'architecture

Au premier démarrage, nextxch crée cinq règles sans destinataires (file d'attente bloquée, disque presque plein, certificat sur le point d'expirer, nombreuses connexions échouées, nombreux rebonds). Elles apparaissent dans l'historique ; pour être notifié, ajoutez une adresse e-mail ou un webhook sous Destinataires et cochez-le dans la règle. L'historique survit aux redémarrages (Ops:PersistHistory = false désactive ce comportement).

Flux d'événements en direct pour les outils de supervision

Authentification comme pour l'API d'administration (clé d'API d'un administrateur via X-Api-Key, Bearer ou Basic). Les administrateurs de locataire ne voient que leur locataire. Filtres : types, direction, status, q ; maxRate limite les événements par seconde (par défaut 20, max. 200) ; l'excédent est signalé dans un événement dropped.

Référence / configuration
curl -N -H "X-Api-Key: $NEXTXCH_KEY" \
  "https://mail.company.com/api/admin/telemetry/stream?types=delivery,rejection,auth-failure&maxRate=50"

event: delivery
data: {"at":"2026-11-02T08:15:01Z","direction":"Outbound","status":"Delivered","from":"billing@company.com","to":"customer@example.com","code":250,...}

event: auth-failure
data: {"account":"info@company.com","protocol":"IMAP","remoteIp":"203.0.113.7","reason":"invalid password"}

# Types: delivery, rejection, auth-failure, filter, alert, queue

Paramètres, valeurs par défaut & bonnes pratiques

Paramètre / emplacement Description Valeur par défaut Bonne pratique en production
Alarmregel Métrique, condition (>, >=, <, <=), seuil et durée en minutes. L'alerte ne se déclenche que si la condition est remplie sans interruption pendant cette durée. 5 min Ignorer les pics courts : au moins 5 minutes pour les taux (par minute), 0 minute pour l'expiration des certificats.
Abklingzeit, Wiederholung, Entwarnung Le délai de carence est le temps minimal entre deux messages de la même règle ; la répétition relance tant que l'alerte reste active ; le rétablissement signale sa fin. 60 min / aus / an Gardez un délai de refroidissement d'au moins 30 minutes afin qu'une valeur fluctuante ne déclenche pas d'alertes en continu.
Ziele E-mail (l'expéditeur est l'administrateur qui a enregistré les paramètres), webhook (JSON de type nextxch.alert, signé avec X-Nextxch-Signature: sha256=...), SMS, Telegram, Signal, WhatsApp via les canaux sous Notifications. - Ajoutez au moins une cible en dehors de votre propre serveur de messagerie (SMS, messagerie instantanée ou webhook) : si la remise est en panne, un e-mail d'alerte n'arrivera pas.
Messwerte in Prometheus und OpenTelemetry Chaque valeur du tableau de bord est disponible sur /metrics : nextxch_mail_inbound_total, nextxch_mail_outbound_total, nextxch_mail_deferred_total, nextxch_mail_bounced_total, nextxch_mail_rejected_total, nextxch_mail_spam_total, nextxch_auth_failures_total, nextxch_mail_spam_rate_percent, nextxch_queue_messages, nextxch_queue_deferred_messages, nextxch_queue_oldest_age_minutes, nextxch_connections_active{protocol}, nextxch_process_cpu_percent, nextxch_process_working_set_bytes, nextxch_disk_free_percent, nextxch_disk_free_bytes, nextxch_database_size_bytes, nextxch_tls_certificate_min_expiry_days, nextxch_tls_certificate_expiry_days{domain}, nextxch_cluster_nodes_active, nextxch_alerts_firing, nextxch_smtp_filter_verdicts_total{type,verdict}, nextxch_smtp_filter_failures_total. aktiv Via OTLP, les instruments portent les mêmes noms avec des points au lieu de tirets bas (nextxch.mail.inbound) ; la conversion vers Prometheus redonne les mêmes noms.