#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).
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.
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. |