Limpieza de los archivos de auditoría fuera de línea
Cuando se activa la auditoría, se debe supervisar el espacio en disco para determinar si es necesario limpiar el elemento AuditArchiveFileRepository del subsistema de auditoría. En función de la implementación elegida, el elemento AuditArchiveFileRepository contiene cualquiera de dos subdirectorios, uno para cada implementación:
• Persistencia directa: AuditArchiveDirectPersistence
• Tabla de datos: AuditArchive
Si se elige utilizar la implementación de tabla de datos y luego se cambia a la implementación de persistencia directa, se conservan los datos de auditoría de la implementación de tabla de datos. La estructura de directorios del almacén de ficheros tendrá el siguiente aspecto:
| Lo contrario también es verdadero: si se cambia de la persistencia directa a la tabla de datos, se conservarán los datos de persistencia directa. |
Las siguientes métricas pueden ayudar en la decisión sobre la necesidad de limpiar el almacén:
• AuditArchiveDiskSpaceUsed (se muestra en MB): cantidad de espacio en disco que el almacén de archivo utiliza.
• AuditArchiveFreeDiskSpace (se muestra en MB): cantidad de espacio en disco que permanece libre.
Hay dos cosas del programador para el servicio CleanUpOfflineAudit:
• AuditArchiveCleanupScheduler: por defecto, se programa un trabajo el último viernes de cada mes a las 18:00 h. Para cambiar la programación, navegue hasta la API AuditArchiveCleanupScheduler en ThingWorx Composer y defina una expresión CRON distinta para ella en su página de configuración.
El trabajo llama al servicio CleanUpOfflineAudit. En función de la implementación activa actualmente, CleanUpOfflineAudit borra los subdirectorios de datos de auditoría archivados solo de uno de los directorios anteriores. Cuando la implementación de tabla de datos está activa, solo se borran los subdirectorios de AuditArchive. Del mismo modo, cuando la persistencia directa está activa, solo se borran los subdirectorios de AuditArchiveDirectPersistence.
Los subdirectorios que se borran son aquellos que son más antiguos que el valor de la propiedad DaysToArchive de este programador. El valor de esta propiedad se puede definir desde ThingWorx Composer. Su valor por defecto es 180 días.
Además de utilizar el programador, se puede llamar al servicio CleanUpOfflineAudit manualmente. Cuando se llama manualmente, el servicio toma la fecha como entrada y quita los datos del subdirectorio de la implementación activa actualmente, AuditArchive de la implementación de tabla de datos o AuditArchiveDirectPersistence de la implementación de persistencia directa.
• AuditArchiveCleanupNotificationScheduler: permite notificar a los usuarios que se ejecutará el servicio de limpieza. Por defecto, esta cosa del programador se activa el último viernes de cada mes a las 06:00 h y desencadena un evento para notificar a los suscriptores al evento que el servicio de limpieza se ejecutará a las 18:00 h (la hora por defecto en que se ejecutará el trabajo programado por
AuditArchiveCleanupScheduler). Como sucede con el programador para el servicio de limpieza, es posible cambiar el día o la frecuencia de la ejecución de este servicio de notificación. También es posible suscribirse al evento y añadir una lógica propia a un script que desee ejecutar en función del evento. Consulte la siguiente sección,
Suscripción al evento, para obtener más información.
El servicio de limpieza, CleanUpOfflineAudit, toma como entrada olderThanDate. Este argumento es de tipo DateTime, con un formato que se basa en la configuración regional. El servicio borra las entradas de auditoría del almacenamiento fuera de línea anteriores a la fecha especificada.
| El servicio CleanUpOfflineAudit también se puede ejecutar manualmente. |
Para la salida, el servicio de limpieza proporciona información sobre los directorios que se han quitado correctamente y, si procede, los directorios que el servicio no ha podido quitar. Se debe tener en cuenta que el fallo de la eliminación de un fichero o directorio no detiene el proceso de limpieza. El servicio omite el directorio fallido y pasa al siguiente.
En el siguiente ejemplo se muestra cómo funciona el servicio de limpieza.
Ejemplo 4. Uso del servicio CleanUpOfflineAudit
Por ejemplo, supongamos que se invoca el servicio con la fecha 2020-03-07 y el subdirectorio de almacén para la implementación de persistencia directa, AuditArchiveDirectPersistence, contiene los siguientes subdirectorios:
Después de que se ejecute el servicio de limpieza, el almacén contiene solo los siguientes subdirectorios:
El subdirectorio denominado 2020-03-07 es para la fecha especificada como olderThanDate y el subdirectorio llamado 2020-03-08 es posterior a olderThanDate. Estos dos permanecen, mientras que el servicio de limpieza borra los otros tres subdirectorios porque son más antiguos que olderThanDate.
Solo los administradores tienen permiso para invocar el servicio de limpieza. Para que un usuario que no es administrador pueda invocarlo, es necesario que un administrador le conceda los permisos adecuados mediante una sustitución de servicio. Para obtener información sobre las sustituciones de servicio, consulte el tema
Sustituciones de servicio en la sección de
seguridad de este centro de ayuda.
Si el servicio de limpieza falla por algún motivo, se devuelve un mensaje de error con el motivo del fallo.
Práctica recomendada para definir el valor de tiempo de conservación fuera de línea
Si se activa la función de informe de métricas, las métricas pertinentes sobre el subsistema de auditoría y su almacén de ficheros de archivo de auditoría están disponibles para el usuario a través de ThingWorx Composer. Para acceder a las métricas, seleccione > . Se puede ver la lista completa de métricas en el tema
Metrics for Auditing Activities. Como se ha indicado antes, las siguientes métricas son buenos indicadores de la necesidad de limpiar datos de auditoría archivados en el almacén:
• AuditArchiveDiskSpaceUsed (se muestra en MB): cantidad de espacio en disco que utilizan los datos archivados en el AuditArchiveFileRepository.
• AuditArchiveFreeDiskSpace (se muestra en MB): cantidad de espacio en disco que permanece libre.
Si el espacio en disco utilizado es alto y el espacio libre es bajo, se recomienda limpiar el almacén lo antes posible invocando el servicio de limpieza manualmente y especificando una fecha que el servicio utilizará como punto de partida para quitar todos los ficheros y directorios que son anteriores a la fecha especificada. Asimismo, considere la posibilidad de definir DaysToArchive en un valor inferior de modo que se pueda mantener la cantidad de espacio en disco libre que el entorno necesita.
Suscripción al evento
El objeto AuditArchiveCleanupNotificationScheduler desencadena un evento denominado AuditCleanupNotification y notifica a los suscriptores sobre la siguiente operación de limpieza de ficheros. Es posible suscribirse al evento y añadir una lógica propia a un script que desee ejecutar en función del evento.
El trabajo asociado al objeto AuditArchiveCleanupScheduler tiene una propiedad denominada DaysToArchive. Por defecto, el valor de esta propiedad es 180 días (seis meses). Este valor se puede cambiar desde ThingWorx Composer. El trabajo programado se ejecuta mensualmente para limpiar todos los datos anteriores al valor de DaysToArchive especificado. También se puede modificar la frecuencia de la invocación automática del servicio en Composer.