Saltar al contenido principal

Resumen

Zylon admite almacenamiento interno de logs y entrega externa por syslog y HTTP.
  • La entrega por syslog esta pensada para SIEMs y colectores que aceptan eventos syslog o CEF.
  • La entrega por HTTP esta pensada para endpoints de ingesta estructurada, destinos cloud y pipelines gestionados por el cliente.
  • La entrega es asincrona.
  • Con failurePolicy: "drop", la entrega evita bloquear el camino critico cuando las colas estan llenas.
  • Los eventos entregados se pueden filtrar por patrones de accion e IDs de organizacion.
  • Los logs almacenados permanecen en el despliegue Zylon del cliente salvo que se habilite entrega externa de logs por syslog o HTTP.
Configure estos ajustes en el YAML de valores de Helm de Zylon. El chart mapea estos valores a la configuracion interna del backend; la configuracion de cliente debe usar las claves YAML mostradas aqui. Para gobernanza, auditabilidad, soporte de trazabilidad para EU AI Act, preservacion de evidencia y retencion, consulte Auditabilidad y gobernanza de IA: Logging, evidencia y entrega a SIEM.

Vista rapida

CanalSe habilita conFormatosUso recomendado
Almacenamiento internologging.storage.enabled: trueRegistros estructurados de ZylonRevision en Backoffice y recuperacion manual
Sysloglogging.delivery.syslog.enabled: truerfc5424_json, cefSIEMs, colectores syslog y colectores CEF
HTTPlogging.delivery.http.enabled: truecanonical_jsonColectores HTTP, gateways de ingesta y destinos cloud
Syslog y HTTP pueden habilitarse al mismo tiempo. Cuando ambos estan habilitados, Zylon envia los logs coincidentes a ambos destinos.

Antes de configurar la entrega

  • Confirme que el endpoint del colector es accesible desde el backend de Zylon.
  • Confirme host o URL y puerto.
  • Seleccione transporte y formato.
  • Decida el comportamiento de verificacion de certificados TLS.
  • Configure el input, indice, parser o ruta de ingesta en el colector.
  • Revise los requisitos de retencion en Zylon y en los sistemas externos.
  • Revise filtros para no excluir eventos de auditoria requeridos.

Almacenamiento y retencion

El almacenamiento interno se controla bajo logging.storage.

Claves de almacenamiento

ClavePredeterminadoValoresDescripcion
enabledtruetrue, falseHabilita la persistencia interna de logs estructurados.

Claves de retencion

La limpieza de logs internos se controla bajo zylonBackend.scheduler.cleanup. Configuracion del programador:
ClavePredeterminadoValoresDescripcion
enabledfalsetrue, falseHabilita el programador de limpieza.
cron0 3 * * *expresion cronProgramacion de limpieza. Compartida con el borrado permanente.
timezoneUTCzona horariaZona horaria usada por la programacion. Compartida con el borrado permanente. Si el ajuste runtime se omite fuera de Helm, el backend usa la zona horaria JVM del servidor.
Bajo logging:
ClavePredeterminadoValoresDescripcion
enabledfalsetrue, falseHabilita la limpieza de logs almacenados.
deleteAfterDays180dias enterosElimina logs almacenados con mas antiguedad que este umbral.
La limpieza de logs almacenados esta deshabilitada por defecto. El valor 180 dias aplica solo despues de habilitar tanto el programador de limpieza como la limpieza de logs almacenados.
La limpieza de logs usa el mismo cron y la misma zona horaria que el borrado permanente. Revise Borrado permanente antes de cambiar la programacion compartida.

Entrega por syslog

La entrega por syslog envia registros formateados a un colector por TCP, TLS o UDP. Use rfc5424_json para pipelines syslog estructurados. Use cef cuando el colector tenga un input CEF nativo.
FormatoDescripcionUso
rfc5424_jsonSyslog RFC 5424 con un sobre JSON en el cuerpo. El esquema es zylon.rfc5424_json.v1.Eventos estructurados para SIEM o busqueda.
cefFormato CEF bruto. La extension CEF incluye el registro estructurado bajo cs1.Colectores con input CEF nativo.
TransporteComportamiento
tlsSocket TLS persistente. Admite verificacion de certificado y CA personalizada.
tcpSocket TCP persistente sin TLS.
udpEntrega por datagrama. Un evento por datagrama; el framing se ignora.

Claves de syslog

Bajo logging.delivery.syslog:
ClavePredeterminadoValoresDescripcion
enabledfalsetrue, falseHabilita entrega por syslog.
formatrfc5424_jsonrfc5424_json, cefFormato del payload syslog.
hostvaciohostname o IPHost del colector. Requerido cuando syslog esta habilitado.
port6514puerto TCP/UDP validoPuerto del colector.
transporttlstls, tcp, udpTransporte del socket.
framingnewlinenewline, octet_countingFraming para TCP/TLS. Ignorado para UDP.
Los filtros y ajustes opcionales de entrega, cola, lotes y TLS se configuran bajo sus bloques anidados correspondientes en logging.delivery.syslog.Bajo filters:
ClavePredeterminadoValoresDescripcion
includeActionPatterns[]lista wildcardSi no esta vacia, solo se entregan acciones coincidentes.
excludeActionPatterns[]lista wildcardLas acciones coincidentes se excluyen antes de evaluar inclusiones.
includeOrgIds[]lista de UUIDsSi no esta vacia, solo se entregan logs de esas organizaciones.
Bajo delivery:
ClavePredeterminadoValoresDescripcion
timeoutSeconds10entero positivoTimeout de conexion y escritura.
failurePolicydropdrop, blockComportamiento cuando la cola asincrona esta llena.
Bajo delivery.reconnect:
ClavePredeterminadoValoresDescripcion
enabledtruetrue, falseHabilita reconexion tras fallo.
backoffSeconds5entero no negativoEspera antes de reconectar.
Bajo delivery.queue:
ClavePredeterminadoValoresDescripcion
maxEvents10000entero positivoCapacidad de la cola asincrona.
Bajo delivery.batch:
ClavePredeterminadoValoresDescripcion
maxEvents25entero positivoEventos maximos por lote. Forzado a 1 en UDP.
maxDelayMillis250entero positivoEspera maxima antes de enviar un lote parcial.
drainTimeoutMillis1000entero positivoTiempo de drenaje durante apagado.
Bajo tls:
ClavePredeterminadoValoresDescripcion
verifyCertificatefalsetrue, falseHabilita verificacion de certificado y hostname TLS.
caCrtvaciodatos PEMCertificado CA inline. Si se define y caFile esta vacio, el chart lo monta para el backend.
caFilevacioruta legibleBundle CA personalizado usado cuando la verificacion esta habilitada.

Ejemplo completo de syslog

logging:
  storage:
    enabled: true
  delivery:
    syslog:
      enabled: true
      format: "rfc5424_json"
      endpoint:
        host: "syslog.example.com"
        port: 6514
        transport: "tls"
        framing: "newline"
      filters:
        includeActionPatterns:
          - "ws.*"
          - "backoffice.*"
        excludeActionPatterns:
          - "ws.user.enable"
        includeOrgIds:
          - "01985a4d-3c21-7000-8003-0e10dd81d901"
      delivery:
        timeoutSeconds: 10
        failurePolicy: "drop"
        reconnect:
          enabled: true
          backoffSeconds: 5
        queue:
          maxEvents: 10000
        batch:
          maxEvents: 25
          maxDelayMillis: 250
          drainTimeoutMillis: 1000
      tls:
        verifyCertificate: true
        caFile: "/etc/zylon/certs/syslog-ca.pem"

Entrega por HTTP

La entrega por HTTP envia registros JSON estructurados a un colector HTTP. El formato admitido es canonical_json; el esquema es zylon.canonical_json.v1. HTTP admite POST, autenticacion bearer opcional, cabeceras estaticas con Header=Value o Header: Value, reintentos para errores de red y respuestas 5xx, y no reintenta respuestas 4xx.

Claves de HTTP

Bajo logging.delivery.http:
ClavePredeterminadoValoresDescripcion
enabledfalsetrue, falseHabilita entrega por HTTP.
formatcanonical_jsoncanonical_jsonFormato del payload HTTP.
urlvacioURLRequerido cuando HTTP esta habilitado.
methodPOSTPOSTMetodo HTTP.
headers[]lista YAMLCabeceras salientes estaticas.
La autenticacion y los ajustes opcionales de filtros, entrega, cola y lotes se configuran bajo sus bloques anidados correspondientes en logging.delivery.http.Bajo auth:
ClavePredeterminadoValoresDescripcion
typenonenone, bearerModo de autenticacion.
tokenvaciostringRequerido cuando type es bearer.
Bajo filters:
ClavePredeterminadoValoresDescripcion
includeActionPatterns[]lista wildcardSi no esta vacia, solo se entregan acciones coincidentes.
excludeActionPatterns[]lista wildcardLas acciones coincidentes se excluyen antes de evaluar inclusiones.
includeOrgIds[]lista de UUIDsSi no esta vacia, solo se entregan logs de esas organizaciones.
Bajo delivery:
ClavePredeterminadoValoresDescripcion
timeoutSeconds10entero positivoTimeout HTTP de conexion, lectura y escritura.
failurePolicydropdrop, blockComportamiento cuando la cola asincrona esta llena.
Bajo delivery.retry:
ClavePredeterminadoValoresDescripcion
enabledtruetrue, falseHabilita reintentos HTTP.
maxAttempts3entero positivoIntentos maximos cuando los reintentos estan habilitados.
backoffSeconds3entero no negativoEspera entre reintentos.
Bajo delivery.queue:
ClavePredeterminadoValoresDescripcion
maxEvents10000entero positivoCapacidad de la cola asincrona.
Bajo delivery.batch:
ClavePredeterminadoValoresDescripcion
maxEvents25entero positivoEventos maximos por peticion HTTP. Los lotes se envian como array JSON.
maxDelayMillis250entero positivoEspera maxima antes de enviar un lote parcial.
drainTimeoutMillis1000entero positivoTiempo de drenaje durante apagado.

Ejemplo completo de HTTP

logging:
  delivery:
    http:
      enabled: true
      format: "canonical_json"
      endpoint:
        url: "https://collector.example.com/logs"
        method: "POST"
      auth:
        type: "bearer"
        token: "replace-me"
      headers:
        - "X-Collector-Token=replace-me"
        - "X-Customer: default"
      filters:
        includeActionPatterns:
          - "zylon.gateway.*"
          - "ws.*"
        excludeActionPatterns: []
        includeOrgIds: []
      delivery:
        timeoutSeconds: 10
        failurePolicy: "drop"
        retry:
          enabled: true
          maxAttempts: 3
          backoffSeconds: 3
        queue:
          maxEvents: 10000
        batch:
          maxEvents: 25
          maxDelayMillis: 250
          drainTimeoutMillis: 1000

Filtrado de eventos entregados

Syslog y HTTP usan el mismo comportamiento bajo filters.
ClavePredeterminadoValoresDescripcion
includeActionPatterns[]lista wildcardSi no esta vacia, solo se entregan acciones coincidentes. * coincide con cualquier numero de caracteres.
excludeActionPatterns[]lista wildcardLas acciones coincidentes se excluyen antes de evaluar inclusiones.
includeOrgIds[]lista de UUIDsSi no esta vacia, solo se entregan logs de esas organizaciones. Los logs sin organization_id no se entregan.
Orden de evaluacion:
  1. Patrones de exclusion de accion.
  2. Patrones de inclusion de accion.
  3. IDs de organizacion incluidos.

Controles operativos

Mantenga todos los nodos backend de Zylon sincronizados con una fuente horaria confiable como NTP. El chart Helm configura UTC por defecto para el programador de limpieza; si el ajuste runtime se omite fuera de Helm, el backend usa la zona horaria JVM del servidor. Los registros deben revisarse en UTC para correlacion forense entre sistemas. Trate cambios en logging.storage, logging.delivery, filtros, retencion y destinos de colector como cambios de despliegue auditables. Capture aprobaciones y diffs en GitOps, change management, auditoria Kubernetes o el sistema de auditoria de infraestructura usado por el cliente. Los esquemas entregados usan marcadores como zylon.rfc5424_json.v1 y zylon.canonical_json.v1. Los parsers SIEM deben enrutar por marcador y validar compatibilidad al actualizar.

Politicas de fallo

PoliticaComportamientoUso
dropDescarta eventos cuando la cola esta llena y evita bloquear requests.Predeterminado recomendado para produccion.
blockAplica backpressure cuando la cola esta llena.Use solo si la completitud de entrega es mas importante que la latencia.
failurePolicy: "block" puede ralentizar requests cuando la cola de entrega esta llena. Uselo solo despues de dimensionar colas y confirmar disponibilidad del colector.
El spooling de entrega externa respaldado por disco no esta implementado.

Validacion local

  1. Habilite un canal de entrega.
  2. Aplique la configuracion.
  3. Ejecute una accion de API que emita un log, como crear un proyecto o un token de API.
  4. Consulte el colector.
  5. Confirme que aparecen event, action, log.id y campos de actor esperados.
  6. Revise logs del backend si la entrega no llega.
Marcadores utiles:
  • zylon.rfc5424_json.v1 para syslog RFC 5424 JSON.
  • CEF:0|Zylon para CEF.
  • zylon.canonical_json.v1 para HTTP.
  • Una accion conocida como ws.project.create.