Capítulo 19 Conformidade, armazenamento & operação Admin: #pAlerts

Painel de operações, alertas e telemetria ao vivo

O painel de operação (#pOps) mostra ao vivo e como histórico de 24 horas: e-mails por minuto de entrada e saída, e-mails adiados e devolvidos, taxa de spam, logins com falha, tamanho da fila e idade da mensagem mais antiga, conexões ativas por protocolo, CPU, memória, espaço livre em disco, tamanho do banco de dados, expiração de certificados e nós do cluster. Os alertas (#pAlerts) informam violações de limites por e-mail, webhook, SMS, Telegram, Signal ou WhatsApp. Ferramentas externas leem os mesmos dados via /metrics (Prometheus), OpenTelemetry ou o fluxo de eventos ao vivo (Server-Sent Events).

Dica operacional & nota de arquitetura

Na primeira inicialização, o nextxch cria cinco regras sem destinos (fila travada, disco quase cheio, certificado expirando, muitos logins com falha, muitos bounces). Elas aparecem no histórico; para ser notificado, adicione um endereço de e-mail ou um webhook em Destinos e marque-o na regra. O histórico sobrevive a reinicializações (Ops:PersistHistory = false desativa isso).

Fluxo de eventos ao vivo para ferramentas de monitoramento

Autenticação como na API de administração (chave de API de um administrador via X-Api-Key, Bearer ou Basic). Administradores de locatário veem apenas o seu locatário. Filtros: types, direction, status, q; maxRate limita os eventos por segundo (padrão 20, máx. 200); o excesso é informado em um evento dropped.

Referência / configuração
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

Configurações, valores padrão e boas práticas

Configuração / local Descrição Valor padrão Boa prática para produção
Alarmregel Métrica, condição (>, >=, <, <=), limite e duração em minutos. O alerta só dispara quando a condição se mantém por esse tempo sem interrupção. 5 min Ignore picos curtos: pelo menos 5 minutos para taxas (por minuto), 0 minutos para a expiração de certificados.
Abklingzeit, Wiederholung, Entwarnung O cooldown é o tempo mínimo entre duas mensagens da mesma regra; a repetição lembra enquanto o alerta permanecer ativo; a recuperação informa o fim. 60 min / aus / an Mantenha o tempo de espera em 30 minutos ou mais, para que um valor oscilante não fique gerando alertas repetidos.
Ziele E-mail (o remetente é o administrador que salvou as configurações), webhook (JSON com type nextxch.alert, assinado com X-Nextxch-Signature: sha256=...), SMS, Telegram, Signal, WhatsApp pelos canais em Notificações. - Adicione pelo menos um destino fora do seu próprio servidor de e-mail (SMS, mensageiro ou webhook): se a entrega estiver fora do ar, um e-mail de alerta não chegará.
Messwerte in Prometheus und OpenTelemetry Todos os valores do painel estão em /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, os instrumentos têm os mesmos nomes com pontos em vez de sublinhados (nextxch.mail.inbound); a conversão para Prometheus gera novamente os mesmos nomes.