Skip to content

Exportación a SIEM (CEF)

El equipo de seguridad del cliente reúne los eventos de todos sus sistemas en un único SIEM y los analiza allí, no en el panel de cada sistema por separado. Agora entrega el registro de auditoría en formato CEF (Common Event Format): un formato de texto, una línea por evento, con los campos separados por delimitadores. ArcSight, KUMA, MaxPatrol SIEM y otros colectores corporativos lo aceptan sin ninguna adaptación.

La exportación entrega la ventana elegida del registro entera, en un solo fichero, de los apuntes más antiguos a los más recientes. Se puede obtener de dos maneras:

  • con el botón Exportar a CEF de la sección Registro de auditoría: el navegador guarda el fichero;
  • con una petición a la API: así recoge el registro el colector del SIEM según un calendario.

La exportación es la misma lectura del registro que la lista del panel: los mismos permisos, la misma opción de licencia, los mismos apuntes. Para ella Agora no crea ficheros en la máquina ni abre conexiones salientes hacia un colector.

Exportar desde el panel

El botón Exportar a CEF está sobre la lista, junto al botón Aplicar. Exporta exactamente lo que muestra la lista:

  • Tipo de recurso, Nombre del recurso y Actor acotan la exportación igual que acotan la lista;
  • Desde y Hasta fijan la ventana de tiempo;
  • los campos vacíos significan «no filtrar»: se exporta todo el registro dentro de su retención.

La exportación toma los filtros aplicados. Si después de pulsar Aplicar se corrigió un campo pero la lista no se releyó, la exportación usa el valor anterior: el fichero siempre coincide con lo que se ve en pantalla.

El fichero se llama audit-log.cef. Contiene todos los apuntes de la ventana, no solo las páginas que la lista ya ha cargado.

El botón lo ven los mismos roles que el propio registro: security y superadmin. Cuando el registro no está incluido en la licencia, el botón está desactivado.

El fichero se arma en la memoria de la pestaña del navegador. Para una ventana de varios días es suficiente; el registro de un periodo de retención largo conviene recogerlo por la API.

Exportar por la API

GET /central/api-v4/audit-log/export?format=cef&from=2026-09-27T00:00:00Z&to=2026-09-27T12:00:00Z

La autorización es la misma autorización de operador que en el resto de la API de gestión, y los roles también: security y superadmin.

Parámetros:

  • format — obligatorio; por ahora el único valor es cef;
  • from, to — los límites de la ventana en formato RFC 3339, ambos incluidos en la ventana;
  • resource_type, resource_name, actor, actor_type — los mismos filtros que en el panel; actor_type admite admin, static y node.

La respuesta es texto (text/plain), como adjunto con el nombre audit-log.cef. Llega en flujo: las primeras líneas llegan de inmediato y el servidor guarda en memoria una sola página del registro, así que el tamaño de la ventana no está limitado por nada.

Rechazos:

  • 400 — un límite de la ventana no está en formato RFC 3339, o el formato falta o es desconocido. Una petición no válida nunca se convierte en una exportación de todo el registro;
  • 403 — el rol no tiene acceso al registro;
  • 404 — el registro de auditoría no está incluido en la licencia.

Si la exportación se corta a mitad de la transferencia —por ejemplo, falla la base de datos en el lado de la máquina—, la respuesta termina como una transferencia incompleta: curl informa de una conexión cortada y el navegador marca la descarga como fallida. Un fichero que llegó entero contiene toda la ventana.

Sin to, la ventana queda abierta hacia delante: los apuntes hechos mientras la exportación está en curso también entran. Si hace falta un límite fijo, indique to.

La línea CEF

Cada evento es una línea:

CEF:0|Flussonic|agora|26.09|stream_config.patch|stream_config.patch|3|rt=1790590530250 externalId=0f6b8a1e-6a3c-5d7e-9b1a-2c3d4e5f6a7b dvchost=11111111-2222-3333-4444-555555555555 suid=admin suser=ivanov outcome=success src=10.20.1.11 cs1=stream cs1Label=resourceType cs2=conference-a cs2Label=resourceName cs3=9c1f07e2 cs3Label=sessionId cs4=4bf92f3577b34da6a3ce929d0e0e4736 cs4Label=traceId cs5={"fields":["labels"],"role":"admin","src_ip":"10.20.1.11","version":7} cs5Label=details cn1=3672 cn1Label=auditId cn2=1 cn2Label=schemaVersion

La cabecera, hasta la séptima barra vertical:

  • Device Vendor — Flussonic;
  • Device Product — agora: por él el SIEM elige sus reglas de análisis;
  • Device Version — la versión de Agora instalada;
  • Device Event Class ID y Name — la acción, el mismo nombre de máquina que en la columna Acción de la lista: stream_config.patch, admin.create, auth.login_failed;
  • Severity — la gravedad del evento, descrita más abajo.

Después vienen los campos, en forma de clave=valor:

Campo CEF Qué contiene
rt el momento del evento, en milisegundos desde la época
externalId el identificador global del evento: por él el SIEM descarta los duplicados
dvchost el identificador de la instalación de Agora: los eventos de dos instalaciones en un mismo SIEM no se mezclan
suid el tipo de actor: admin, static (clave estática) o node (registro de una máquina del clúster)
suser el login del administrador; la clave estática no lo tiene
outcome success para una acción que ocurrió, failure para un acceso fallido
src la dirección desde la que llegó la petición
cs1, cs2 tipo y nombre del recurso (cs1Label=resourceType, cs2Label=resourceName)
cs3 el identificador de la sesión del administrador (cs3Label=sessionId): une un acceso con todo lo hecho en esa sesión
cs4 el identificador de trazado de la petición (cs4Label=traceId): con él el evento se cruza con los logs
cs5 los detalles del apunte en JSON (cs5Label=details): rol, versión del documento, lista de campos editados
cn1 el número del apunte en el registro de la instalación (cn1Label=auditId)
cn2 la versión del esquema del evento (cn2Label=schemaVersion)

Los campos que un evento no tiene no aparecen en la línea en absoluto: una clave vacía el SIEM la leería como un valor vacío. Una acción con la clave estática, por ejemplo, no tiene ni suser ni cs3.

Los caracteres especiales se escapan como exige la especificación CEF: en la cabecera, la barra invertida y la barra vertical; en los campos, la barra invertida y el signo igual; los saltos de línea se convierten en \n. Por eso un evento ocupa siempre exactamente una línea, contengan lo que contengan sus valores.

Gravedad del evento

La gravedad no se guarda en el registro: se deduce del evento al exportarlo, con una misma tabla:

  • 7 — una acción fallida; por ahora, un intento fallido de acceso (auth.login_failed);
  • 5 — una acción que el equipo de seguridad espera por encima del flujo general:

    • el borrado de cualquier cosa, la revocación de una máquina, la reemisión de los tickets internos del clúster, la revelación del token de incorporación;
    • cualquier acción sobre las cuentas de administradores;
    • la edición de los ajustes de acceso y de los ajustes de la propia instalación de control;
    • la apertura y el cierre de la ventana de incorporación;
    • cualquier acción con la clave estática: un acceso con las credenciales de emergencia merece atención por sí mismo;
  • 3 — todo lo demás: edición de streams, plantillas, zonas de entrega, el acceso de un administrador.

Las reglas se basan en la forma de la acción y no en una lista hecha de antemano, así que las acciones que aparezcan en versiones futuras reciben su gravedad por las mismas reglas.

Recogida periódica en un SIEM

El colector del SIEM recoge el registro por ventanas según un calendario: cada petición toma como from el to de la anterior. Los dos límites pertenecen a la ventana, así que un apunte que cae justo en la junta llega dos veces, y el SIEM descarta el duplicado por externalId. Del mismo modo se repite sin pérdidas una ventana tras una transferencia cortada.

Una ventana no debe ir más allá de la retención del registro: siete días por defecto (el ajuste audit_log_ttl_secs, véase Retención y protección). Un colector que se ha retrasado más tiempo solo encontrará lo que todavía no se ha borrado.

A un colector que lee JSON también le sirve la lista del registro con cursor, descrita en la sección Exportación a SIEM de la página del registro. Los campos del evento son los mismos; solo cambia la forma.