Volver a la wiki

Descripción

Implementación de auditoría transversal en mutaciones sensibles de los módulos ITSM, Alerting, Wireless y UPS (seguimiento SA4/SA5 de Auditoría Suprema). Registra quién hizo qué, cuándo y en qué organización, para todas las acciones que implican cambios de configuración crítica.

Motivación

Las mutaciones en políticas SLA, canales de notificación, alertas y configuraciones de infraestructura (wireless/UPS) carecían de trazabilidad. Un operador eliminaba una alerta o actualizaba un escalado sin registro de auditoría. Esto viola requisitos de compliance y dificulta el debugging de cambios inesperados.

Alcance

Categorías auditadas

  1. ITSM (canales, escalados, mantenimiento, runbooks):

    • sla.update — Cambio de política SLA (ventana de reconocimiento)
    • channel.create / update / delete — Canales de notificación (webhook, email, etc.)
    • escalation.create / update / delete — Políticas de escalado multi-nivel
    • maintenance.create / update / delete — Ventanas de mantenimiento
    • runbook.create / delete / apply — Runbooks (creación, eliminación, aplicación a insights)
  2. OBSERVATORY (alertas, wireless, UPS):

    • alert.delete — Eliminación de alerta (potencial silenciamiento)
    • alert.resolve — Resolución manual de evento
    • alert.threshold — Cambio de umbral de disparo
    • wireless.deep_discover — Trigger de descubrimiento de APs
    • wireless.group_assign — Asignación de grupos a APs
    • ups.deep_discover — Trigger de descubrimiento de UPS
    • ups.group_assign — Asignación de grupos a UPS

No auditadas (por diseño)

Implementación

Helper genérico: log_action()

from core.utils import log_action

# En cualquier endpoint:
log_action(request, "ITSM", "channel.create", f"id={c.id} name={c.name} type={c.channel_type}")

Ubicado en core.utils.audit.log_action():

Modelo: Extensión de SystemLog

La migración 0023_alter_systemlog_category añade dos categorías nuevas:

CATEGORY_CHOICES = [
    ("AUTH", "Authentication"),
    ("RACK", "Rack Management"),
    ("BLUEPRINT", "Blueprint Management"),
    ("SYSTEM", "System"),
    ("NETWORK", "Network Management"),
    ("ITSM", "ITSM Management"),           # NEW
    ("OBSERVATORY", "Observatory Management"),  # NEW
]

Endpoints modificados

ArchivoMutacionesAcción
monitoring/api/itsm.py9SLA update, channel create/update/delete, escalation create/update/delete, maintenance create/update/delete
monitoring/api/itsm_runbooks.py3runbook create/delete/apply
monitoring/api/alerts.py3alert delete/resolve/threshold
monitoring/api/wireless.py2deep_discover, group_assign
monitoring/api/ups.py2deep_discover, group_assign
Total19—

Tests

Cobertura mínima en tests/api/test_monitoring_sa4_sa5.py::TestAuditLogs:

Ambos validan que:

Impacto operacional

Rollout

  1. Migración silenciosa (0023) — no requiere downtime
  2. log_action() available inmediatamente en core.utils
  3. Endpoints comienzan a emitir logs tras el deploy
  4. Retroactividad: 0 (logs anteriores no existirán; esto es punto de inicio)

Véase también

Subir