Administración del almacenamiento de archivos de registro de IIS

por Jim van de Erve

Puede administrar la cantidad de espacio en disco del servidor que consumen los archivos de registro de Internet Information Services (IIS) mediante la compresión, el almacenamiento remoto y la eliminación con scripts.

Información general

Los archivos de registro que genera IIS pueden consumir una gran cantidad de espacio en disco con el tiempo. Los registros pueden rellenar un disco duro completo. Para mitigar este problema, muchos usuarios desactivan completamente el registro. Afortunadamente, existen alternativas, como las siguientes:

Las mitigaciones anteriores se describen en las secciones siguientes. También puede hacer lo siguiente para controlar el uso del disco:

  • Limitar el tamaño del registro omitiendo campos de propiedades innecesarios
  • Crear registros independientes para sitios web y aplicaciones
  • Conservar los recursos de memoria mediante el registro binario centralizado.

Para obtener más información, consulte Configuración del registro en IIS.

Habilitación de la compresión de carpetas

Los archivos de registro de IIS se comprimen en aproximadamente el 2 % de su tamaño original. Habilite la compresión de un archivo de registro como se indica a continuación. Deberá ser administrador para poder realizar este procedimiento.

  1. Haga clic en el icono Administrador de archivos de la barra de iconos.
  2. Vaya a la carpeta que contiene archivos de registro de IIS (de forma predeterminada, %SystemDrive%\inetpub\logs\LogFiles).
  3. Haga clic con el botón derecho en la carpeta y haga clic en Propiedades.
  4. En la pestaña General de la página Propiedades, haga clic en Avanzadas.
  5. Haga clic en Comprimir contenido para ahorrar espacio en disco y, a continuación, en Aceptar. Enabling compression
  6. Haga clic en Aplicar y, a continuación, seleccione si quiere comprimir solo la carpeta o la carpeta, sus subcarpetas y sus archivos.
  7. Haga clic en OK. Compruebe que el contenido de la carpeta esté comprimido. El nombre de la carpeta y el nombre de cada archivo deben ser de color azul y el tamaño de un archivo de compresión debe ser menor.

Se trata de una manera sencilla de reducir el uso del disco. Sin embargo, no es una solución final, ya que el uso del disco sigue creciendo con el tiempo y podría rellenar el disco duro.

Si la carpeta ya contiene una cantidad significativa de datos, el equipo podría tardar un tiempo en comprimir su contenido. Tenga en cuenta también que este proceso único podría ralentizar el equipo durante la compresión inicial, por lo que si se trata de un servidor de producción, realice esta operación durante las horas de poca actividad para evitar la degradación del servicio.

Migración de la carpeta de registro a un sistema remoto

Los archivos de registro de IIS se almacenan de forma predeterminada en la carpeta %SystemDrive%\inetpub\logs\LogFiles del servidor IIS. La carpeta se configura en la propiedad Directory de la página Registro del servidor o de un sitio individual. Para reducir el problema del uso del disco de registro, puede mover los archivos de registro de IIS a una carpeta de otro servidor que tenga más espacio. Este servidor puede estar en el mismo dominio que el servidor IIS local o en un dominio diferente. Puede guardar archivos de registro de forma remota para todo el servidor o para sitios web individuales.

Esta solución puede ayudar a la seguridad del sistema, ya que, si se bloquea un disco duro local, los datos de registro siguen estando disponibles en el almacenamiento remoto. Además, los sistemas de análisis pueden consumir los archivos de registro.

Cambie la ubicación de un archivo de registro de IIS a un recurso compartido remoto de la siguiente manera:

  1. Cree un directorio de archivos de registro en un servidor remoto que esté en el mismo dominio que el servidor web local que ejecuta IIS.

  2. En la página Propiedades de la carpeta, en la pestaña Uso compartido, haga clic en Compartir para que el directorio se comparta. En la pestaña Seguridad, asigne grupos y usuarios con los permisos adecuados. Asegúrese de que los grupos y usuarios adecuados puedan leer y escribir en los archivos de registro. Log Folder Properties

    Para obtener más información, consulte Configuración de permisos para el registro remoto.

    Nota: Si quiere escribir archivos de registro en un servidor remoto en un dominio diferente, consulte Configuración de una sesión nula para el registro entre dominios.

  3. Abra Administrador de IIS en el servidor web local.

  4. En Administrador de IIS, en el panel Conexiones, haga clic en el servidor o en un sitio web.

  5. Haga doble clic en Registro. Logging Icon

  6. En el cuadro de texto Directorio, escriba la ruta de acceso UNC completa del directorio que creó en el servidor remoto. Por ejemplo, escriba \servername\Logs, donde "servername" representa el nombre del servidor remoto y "Logs" representa el nombre del recurso compartido donde se almacenan los archivos de registro. Logging Page

  7. En el panel Acciones, haga clic en Aplicar y, a continuación, haga clic en Aceptar. Todos los sitios web del directorio deben comenzar a registrar datos en el recurso compartido remoto.

    Para más información, consulte Registro remoto.

Eliminación de archivos de registro antiguos mediante script

Puede controlar el uso de disco de los archivos de registro mediante la ejecución de un script que elimina automáticamente los archivos de registro que tienen una antigüedad determinada. La ejecución de este script en una tarea programada mantendrá bajo control el problema de que un disco se llene sin un mantenimiento constante.

El siguiente VBScript comprobará la antigüedad de cada archivo de registro en una carpeta y eliminará cualquier archivo de registro anterior a la antigüedad especificada. Para personalizar el script según sus propósitos, simplemente cambie el nombre y la ruta de la carpeta en la línea 1 del script y cambie la edad máxima al valor deseado en días, en la línea 2.

sLogFolder = "c:\inetpub\logs\LogFiles"
iMaxAge = 30   'in days
Set objFSO = CreateObject("Scripting.FileSystemObject")
set colFolder = objFSO.GetFolder(sLogFolder)
For Each colSubfolder in colFolder.SubFolders
        Set objFolder = objFSO.GetFolder(colSubfolder.Path)
        Set colFiles = objFolder.Files
        For Each objFile in colFiles
                iFileAge = now-objFile.DateCreated
                if iFileAge > (iMaxAge+1)  then
                        objFSO.deletefile objFile, True
                end if
        Next
Next

El script anterior escaneará todas las subcarpetas, por lo que procesará los registros de TODOS los sitios dentro y debajo de la carpeta especificada. Si desea limitar el proceso a un solo sitio, cambie la ruta de acceso de forma adecuada.

Para ejecutar el script manualmente, ejecute el siguiente script en una línea de comandos de administrador: cscript.exe c:\scripts\retentionscript.vbs

El uso de un script para eliminar archivos de registro es una solución confiable a largo plazo para el problema de los archivos de registro que consumen espacio en disco. Si automatiza el proceso, como se muestra a continuación, no se requerirá mantenimiento constante.

Ejecución del script como tarea programada

Puede automatizar la tarea de eliminar archivos de registro mediante script mediante la creación de una programación de tareas de Windows para ejecutar el script periódicamente. Puede programar el script para que se ejecute en cualquier momento mediante el Programador de tareas de Windows. La configuración de la tarea programada debe coordinarse con la configuración de las opciones de sustitución de archivos de registro.

  1. Abra el Administrador del servidor, haga clic en el menú Herramientas y, a continuación, haga clic en Programador de tareas.
  2. En el panel Acciones del cuadro de diálogo Programador de tareas, haga clic en Crear tarea. Create Task control
  3. En la pestaña General del cuadro de diálogo Crear tarea, escriba un nombre para la tarea, como "Eliminar archivos de registro". Establezca las propiedades de seguridad seleccionando una cuenta de usuario con privilegios suficientes para ejecutar el script. Create Task dialog box
  4. Haga clic en la pestaña Desencadenadores y, a continuación, haga clic en Nuevo. En el cuadro de diálogo Nuevo desencadenador, establezca Iniciar la tarea en Según una programación. Seleccione la periodicidad, por ejemplo, Diaria. Escriba la fecha de inicio, seleccione más configuraciones avanzadas y asegúrese de que Habilitado se haya seleccionado si lo tiene todo listo para iniciar la programación. Haga clic en OK. New Trigger dialog box
  5. Haga clic en la pestaña Acciones y después, en Nueva. En el cuadro de diálogo Nueva acción, seleccione un valor para Acción; en este caso, Iniciar un programa. En Programa/script, escriba cscript y, en Agregar argumentos (opcional), escriba la ruta de acceso y el nombre del archivo de script, por ejemplo, C:\iis\Log\_File\_Deletion.vbs. Haga clic en OK. New Action dialog box
  6. Haga clic en OK.
  7. Compruebe que la tarea se haya agregado al panel Tareas activas.
  8. Haga clic con el botón derecho en la nueva tarea y seleccione Ejecutar. Task Scheduler dialog box
  9. Vaya a la carpeta en la que se ejecutó el script y compruebe que se hayan eliminado los archivos de registro adecuados.
  10. Vuelva al Programador de tareas, haga clic con el botón derecho en la tarea y haga clic en Finalizar para que el estado vuelva a Listo y la tarea esté lista para las ejecuciones programadas.