Capítulo 19 Cumplimiento, almacenamiento & operación Admin: #pAlerts

Panel de operaciones, alertas y telemetría en vivo

El panel de operaciones (#pOps) muestra en vivo y como historial de 24 horas: correos por minuto entrantes y salientes, correo diferido y rebotado, tasa de spam, inicios de sesión fallidos, tamaño de la cola y antigüedad del mensaje más antiguo, conexiones activas por protocolo, CPU, memoria, espacio libre en disco, tamaño de la base de datos, caducidad de certificados y nodos del clúster. Las alertas (#pAlerts) notifican los incumplimientos por correo electrónico, webhook, SMS, Telegram, Signal o WhatsApp. Las herramientas externas leen los mismos datos mediante /metrics (Prometheus), OpenTelemetry o el flujo de eventos en vivo (Server-Sent Events).

Consejo operativo y nota de arquitectura

En el primer inicio, nextxch crea cinco reglas sin destinos (cola atascada, disco casi lleno, certificado a punto de caducar, muchos inicios de sesión fallidos, muchos rebotes). Aparecen en el historial; para recibir avisos, añada una dirección de correo o un webhook en Destinos y márquelo en la regla. El historial sobrevive a los reinicios (Ops:PersistHistory = false lo desactiva).

Flujo de eventos en vivo para herramientas de monitorización

Autenticación como en la API de administración (la clave de API de un administrador mediante X-Api-Key, Bearer o Basic). Los administradores de inquilino solo ven su inquilino. Filtros: types, direction, status, q; maxRate limita los eventos por segundo (predeterminado 20, máx. 200); el exceso se notifica en un evento dropped.

Referencia / configuración
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

Configuración, valores predeterminados y buenas prácticas

Ajuste / ubicación Descripción Valor predeterminado Buena práctica de producción
Alarmregel Métrica, condición (>, >=, <, <=), umbral y duración en minutos. La alerta solo se dispara cuando la condición se mantiene durante ese tiempo sin interrupción. 5 min Ignore los picos breves: al menos 5 minutos para las tasas (por minuto), 0 minutos para la caducidad de certificados.
Abklingzeit, Wiederholung, Entwarnung El cooldown es el tiempo mínimo entre dos mensajes de la misma regla; repeat recuerda mientras la alerta siga activa; recovery informa del final. 60 min / aus / an Mantenga el periodo de espera en 30 minutos o más para que un valor fluctuante no genere avisos continuamente.
Ziele Correo electrónico (el remitente es el administrador que guardó la configuración), webhook (JSON con el tipo nextxch.alert, firmado con X-Nextxch-Signature: sha256=...), SMS, Telegram, Signal, WhatsApp a través de los canales en Notificaciones. - Añada al menos un destino fuera de su propio servidor de correo (SMS, mensajería o webhook): si la entrega no funciona, un correo de alerta no llegará.
Messwerte in Prometheus und OpenTelemetry Cada valor del panel está en /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 A través de OTLP, los instrumentos llevan los mismos nombres con puntos en lugar de guiones bajos (nextxch.mail.inbound); la conversión a Prometheus vuelve a producir los mismos nombres.