La rotación de archivos de log es imprescindible en entornos empresariales. Los archivos de log crecen de forma natural con el tiempo, mientras que el espacio en disco sigue siendo limitado. Sin una supervisión centralizada, puedes acumular demasiados y quedarte sin espacio para el resto de tus archivos. Automatizar el proceso garantiza que tus archivos de log se archiven o se eliminen a intervalos regulares o cuando el uso del disco supere un umbral determinado.
Guía para automatizar la rotación de archivos de log y el control del espacio en disco
La rotación de logs se puede automatizar con Windows PowerShell. También puedes usar PowerShell para recopilar informes de uso de disco. Para programar tareas, puedes recurrir al símbolo del sistema y ejecutar un script de PowerShell a intervalos fijos. En escenarios más complejos, como definir umbrales de uso de disco, te conviene una herramienta RMM.
📌 Requisitos previos:
- Necesitas PowerShell 5.1 o una versión superior.
- Necesitas privilegios completos de administrador.
- Necesitas acceso al Registro para hacer seguimiento de las políticas y la configuración de las aplicaciones.
- Necesitas programar tareas en local o contar con una integración con un RMM para ejecutar estos scripts a intervalos regulares.
- Necesitas acceso a las directivas de grupo para aplicar políticas de retención de logs cuando corresponda.
🎥 Este vídeo explica paso a paso cómo automatizar la rotación de archivos de log y los informes de espacio en disco en todos tus clientes.
📌 Estrategias de despliegue recomendadas:
Paso 1: identifica y cataloga las ubicaciones clave de los archivos de log
Los administradores pueden usar Windows PowerShell para listar el contenido de los directorios de logs que se monitorizan con más frecuencia, como:
- C:\Windows\System32\LogFiles
- C:\ProgramData\AppName\Logs\
- C:\Logs\CustomScripts\
- C:\inetpub\logs\LogFiles (IIS)
- Herramientas de antivirus, copia de seguridad y monitorización (por ejemplo, SentinelOne, Veeam, NinjaOne)
Para hacerlo, sigue estos pasos:
- Abre el menú Inicio y busca Windows PowerShell.
- Haz clic derecho en Windows PowerShell > Ejecutar como administrador.
- Despliega el script que generará los logs. Este es un script de PowerShell de ejemplo:
$paths = @(
"C:\Windows\System32\LogFiles",
"C:\ProgramData\AppName\Logs",
"C:\Logs",
"C:\inetpub\logs\LogFiles"
)
foreach ($path in $paths) {
Get-ChildItem -Path $path -Recurse -Include *.log |
Select-Object FullName, Length, LastWriteTime
}
Adapta el script a tus necesidades.
- Exporta los archivos a un CSV para tener una referencia de comparación.
Paso 2: automatiza la rotación de logs según su antigüedad o tamaño
Puedes rotar los logs cuando superen un número determinado de días. Para ello, sigue estos pasos:
- Abre el menú Inicio y busca Windows PowerShell.
- Haz clic derecho en Windows PowerShell > Ejecutar como administrador.
- Escribe este script y pulsa Intro:
$logPath = "C:\ProgramData\AppName\Logs"
$days = 30
Get-ChildItem -Path $logPath -Recurse -Filter *.log |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$days) } |
ForEach-Object {
$archive = "$($_.FullName).bak"
Rename-Item -Path $_.FullName -NewName $archive
}
También puedes comprimir los logs en un archivo .zip antes de archivarlos o eliminarlos cuando superen un umbral determinado.
Para comprimir los archivos, despliega este script:
Compress-Archive -Path $archive -DestinationPath "$archive.zip"
Remove-Item -Path $archive
Para eliminar los archivos de log cuando superen un umbral determinado, despliega este script:
Get-ChildItem -Path $logPath -Recurse -Filter *.log |
Where-Object { $_.Length -gt 100MB } |
Remove-Item -Force
Ajusta el umbral de tamaño de archivo a tus necesidades y a los requisitos de tu organización.
Paso 3: usa CMD y tareas programadas para una limpieza básica de logs
Puedes usar el símbolo del sistema para programar una tarea que limpie tus archivos de log periódicamente después de un plazo determinado. Abre el símbolo del sistema con permisos elevados y ejecuta el comando. Este es un comando de ejemplo que puedes utilizar:
Para eliminar los logs:
forfiles /p "C:\Logs" /s /m *.log /d -30 /c "cmd /c del @path"
Para programar una tarea:
schtasks /create /tn "RotateLogs" /tr "powershell.exe -File C:\Scripts\RotateLogs.ps1" /sc weekly /ru SYSTEM
El script anterior ejecutará a intervalos fijos un archivo de PowerShell como este:
Get-ChildItem -Path $logPath -Recurse -Filter *.log |Where-Object { $_.Length -gt 100MB } |Remove-Item -Force
Adapta los scripts del símbolo del sistema y de PowerShell en cada endpoint según los requisitos de tu organización y las políticas de tus clientes.
Paso 4: recopila informes de uso de disco con PowerShell
Controlar el uso del disco te ayuda a saber cuántos logs has generado y si ha llegado el momento de eliminarlos o archivarlos. Para hacerlo, sigue estos pasos:
- Abre el menú Inicio y busca Windows PowerShell.
- Haz clic derecho en Windows PowerShell > Ejecutar como administrador.
- Escribe este script y pulsa Intro:
Get-PSDrive -PSProvider FileSystem | Select-Object Name, @{Name="Free(GB)";Expression={[math]::round($_.Free/1GB,2)}}, @{Name="Used(GB)";Expression={[math]::round(($_.Used)/1GB,2)}}
Detailed per folder:
Get-ChildItem "C:\" -Directory |
ForEach-Object {
$_.FullName
(Get-ChildItem $_.FullName -Recurse | Measure-Object -Property Length -Sum).Sum / 1MB
}
- Exporta los informes.
Paso 5: registra el estado de la rotación y el espacio libre en el Registro
Puedes dejar constancia de los resultados de las limpiezas de logs en el Registro de Windows y seguir su estado con una herramienta de gestión de endpoints.
- Abre el menú Inicio y busca Windows PowerShell.
- Haz clic derecho en Windows PowerShell > Ejecutar como administrador.
- Escribe este script y pulsa Intro:
New-Item -Path "HKLM:\SOFTWARE\Org\LogRotation" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\LogRotation" -Name "LastRotation" -Value (Get-Date).ToString("u")
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\LogRotation" -Name "FreeSpaceGB" -Value 120
- Para comprobar los datos dentro de las claves del Registro, abre el símbolo del sistema como administrador.
- Escribe este comando y pulsa Intro:
reg query HKLM\SOFTWARE\Org\LogRotation
Paso 6: aplica la política de logs mediante GPO (cuando sea posible)
- Abre el menú Inicio y busca Editar directiva de grupo para abrir el programa.
- Ve a esta ruta: Configuración del equipo > Plantillas administrativas > Componentes de Windows > Servicio de registro de eventos.
- Entra en Aplicación, Seguridad y Sistema para configurar las siguientes directivas:
- Especificar el tamaño máximo del archivo de registro (KB) : aquí puedes indicar el tamaño máximo del log.
- Configurar el acceso al registro : define el permiso de acceso al registro de seguridad.
- Hacer copia de seguridad del registro automáticamente cuando esté lleno : define el método de retención de logs (sobrescribir o archivar).
⚠️ Resolución de problemas y aspectos a tener en cuenta
| Problema o riesgo | Posibles consecuencias | Solución o reversión |
| Aparecen errores de permisos. | No podrás rotar ni eliminar los archivos de log. | Asegúrate de ejecutar estos scripts con permisos elevados. |
| Los archivos de log están bloqueados. | No podrás rotar ni eliminar los archivos de log. | Revisa handle.exe o reinicia el servicio antes de rotarlos o eliminarlos. Algunas aplicaciones pueden impedir que modifiques sus archivos de log. |
| Faltan las actualizaciones del Registro. | No podrás registrar datos en el Registro de Windows. | Comprueba que los scripts se ejecutaron correctamente y que las rutas eran las correctas. |
| Las tareas programadas no se activan. | No podrás rotar ni eliminar los archivos de log. | Valida el historial del Programador de tareas o consulta el estado de las directivas en el símbolo del sistema con gpresult /h result.html. |
Guía de inicio rápido
NinjaOne ofrece varias funciones relacionadas con la rotación de archivos de log y los informes de espacio en disco:
1. Informes de espacio en disco:
Incluye un script integrado, «Disk Space Alert», que puede:
- Avisar cuando una unidad baja de un porcentaje o un tamaño determinados
- Diferenciar entre unidades de sistema y de datos
2. Gestión de logs y archivos:
Varios scripts facilitan la monitorización relacionada con los logs:
- «File Modification Alert» comprueba si un archivo se ha actualizado
- «Text File Monitor» avisa cuando encuentra un texto concreto en un archivo de log
- «Backup Event Log to Local Disk» exporta los registros de eventos a un archivo zip comprimido
3. Otras funciones relevantes:
- «Tree Size Report» obtiene el listado de tamaños de carpeta de una ruta determinada
- «System Performance Check» recopila datos de rendimiento del sistema, incluida la información de disco
Otros aspectos a tener en cuenta al automatizar la rotación de archivos de log y los informes de espacio en disco
- Algunas aplicaciones escriben logs rotativos de forma automática, mientras que otras hay que configurarlas. Tenlo en cuenta al ajustar estos parámetros.
- Los clientes sujetos a HIPAA y SOC 2 pueden necesitar periodos de archivado más largos. En ese caso, conviene rotar los archivos de log en lugar de eliminarlos.
- Vigila de cerca tus unidades. Configura la limpieza de logs para que se active cuando el uso llegue al 80 %-90 %.
- Usa herramientas como NXLog o PowerShell para extraer los eventos relevantes antes de la rotación.
Servicios de NinjaOne para la rotación de logs y los informes de espacio en disco
NinjaOne ayuda a las organizaciones a gestionar sus archivos de log y su espacio en disco de estas formas:
| Función | Beneficio | Cómo facilita el proceso |
| Desplegar y programar scripts de PowerShell para la rotación de logs. | Garantiza un mantenimiento de logs homogéneo en todos los dispositivos. | Automatiza las tareas repetitivas y elimina la necesidad de limpiezas manuales. |
| Etiquetar dispositivos según el espacio libre en disco, el número de logs y las tendencias de crecimiento. | Permite identificar los dispositivos en riesgo antes de que surjan problemas. | Aporta una visibilidad clara para priorizar dónde hace falta actuar. |
| Avisar a los administradores cuando falla la limpieza o queda poco espacio. | Evita tiempos de inactividad y problemas de rendimiento. | Envía notificaciones proactivas para que los administradores puedan actuar rápido. |
| Generar informes de uso de disco y presencia de logs en todos los clientes | Respalda las auditorías y las revisiones trimestrales con datos precisos. | Ahorra tiempo al generar informes de cumplimiento y de negocio listos para usar. |
| Lanzar acciones condicionales (limpieza, notificaciones) a partir de umbrales. | Mantiene los sistemas optimizados y en cumplimiento. | Automatiza la respuesta a los problemas sin necesidad de intervención manual. |
Gestiona el espacio en disco automatizando la rotación de archivos de log en todos tus dispositivos gestionados
Automatizar la rotación de archivos de log y la monitorización del espacio en disco es clave para unas operaciones de TI escalables. Es fundamental contar con una supervisión centralizada y asegurarte de que tus archivos de log no superen ciertos umbrales de uso de disco. Así podrás gestionar tus recursos de forma más eficiente y tu organización dedicará el espacio en disco a lo que de verdad importa.
Artículos relacionados:
- Cómo usar un script de PowerShell para generar los archivos de log de soporte de NinjaOne
- Cómo monitorizar archivos de log y detectar texto específico en Linux con un script de Bash
- Cómo leer los registros de eventos de Windows: apagado y reinicio
- Cómo comprobar y monitorizar el espacio en disco de forma remota con un script de PowerShell
- Cómo usar el Liberador de espacio en disco de Windows para optimizar tu sistema
