Capitolo 19 Conformità, storage & operatività Admin: #pAlerts

Dashboard operativa, avvisi e telemetria live

La dashboard operativa (#pOps) mostra in tempo reale e come cronologia di 24 ore: e-mail al minuto in entrata e in uscita, posta differita e respinta, tasso di spam, accessi non riusciti, dimensione della coda ed età del messaggio più vecchio, connessioni attive per protocollo, CPU, memoria, spazio libero su disco, dimensione del database, scadenza dei certificati e nodi del cluster. Gli alert (#pAlerts) segnalano i superamenti delle soglie via e-mail, webhook, SMS, Telegram, Signal o WhatsApp. Gli strumenti esterni leggono gli stessi dati tramite /metrics (Prometheus), OpenTelemetry o il flusso di eventi live (Server-Sent Events).

Suggerimento operativo & nota sull'architettura

Al primo avvio nextxch crea cinque regole senza destinazioni (coda bloccata, disco quasi pieno, certificato in scadenza, molti accessi non riusciti, molti bounce). Compaiono nella cronologia; per ricevere notifiche, aggiungere un indirizzo e-mail o un webhook in Destinazioni e selezionarlo nella regola. La cronologia sopravvive ai riavvii (Ops:PersistHistory = false la disattiva).

Flusso di eventi live per strumenti di monitoraggio

Autenticazione come per l'API di amministrazione (chiave API di un amministratore tramite X-Api-Key, Bearer o Basic). Gli amministratori tenant vedono solo il proprio tenant. Filtri: types, direction, status, q; maxRate limita gli eventi al secondo (predefinito 20, max. 200); l'eccedenza viene segnalata in un evento dropped.

Riferimento / configurazione
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

Impostazioni, valori predefiniti e best practice

Impostazione / posizione Descrizione Valore predefinito Best practice per la produzione
Alarmregel Metrica, condizione (>, >=, <, <=), soglia e durata in minuti. L'avviso scatta solo se la condizione persiste per tutto quel tempo senza interruzioni. 5 min Ignorare i picchi brevi: almeno 5 minuti per i tassi (al minuto), 0 minuti per la scadenza dei certificati.
Abklingzeit, Wiederholung, Entwarnung Il cooldown è il tempo minimo tra due messaggi della stessa regola; repeat ricorda finché l'allerta resta attiva; recovery segnala la fine. 60 min / aus / an Mantenere il cooldown a 30 minuti o più, affinché un valore oscillante non continui a generare notifiche.
Ziele E-mail (il mittente è l'amministratore che ha salvato le impostazioni), webhook (JSON con type nextxch.alert, firmato con X-Nextxch-Signature: sha256=...), SMS, Telegram, Signal, WhatsApp tramite i canali in Notifiche. - Aggiungere almeno una destinazione esterna al proprio mail server (SMS, messenger o webhook): se il recapito non funziona, una e-mail di alert non arriverà.
Messwerte in Prometheus und OpenTelemetry Ogni valore della dashboard è disponibile su /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 Tramite OTLP gli strumenti hanno gli stessi nomi, con punti al posto dei trattini bassi (nextxch.mail.inbound); la conversione in Prometheus restituisce di nuovo gli stessi nomi.