Búsqueda de sitios web

¿Cómo limpiar, truncar o mover archivos de registro en Exchange Server 2013/2016/2019?


Después de implementar Exchange, puede notar que el espacio libre en disco comienza a disminuir muy rápidamente. Además del crecimiento de las propias bases de datos de buzones, los diversos registros ocupan mucho espacio en los servidores de Exchange. El problema de los registros de gran tamaño es especialmente notable en las versiones que comienzan con Exchange 2013. A menos que esté utilizando alguna solución para limpiar los archivos de registro antiguos, es muy común que las bases de datos de los buzones se desmonten y el servicio de Exchange no esté disponible para los usuarios debido a que los registros de Exchange ocupan todo el espacio disponible en el disco (a menudo acompañado por el

452 4.3.1 Insufficient system resources

error). En este artículo, veremos diferentes formas de limpiar, truncar y mover archivos de registro en Exchange Server 2013/2016/2019.

¿Cómo truncar/purgar registros de transacciones en Exchange?

Los registros de transacciones de las bases de datos de buzones son uno de los elementos más importantes de Exchange. Por ejemplo: al enviar/recibir un mensaje de correo electrónico, Exchange primero escribe la información en el archivo de registro de transacciones y solo luego guarda el elemento directamente en la base de datos del buzón. Los registros de transacciones contienen todas las operaciones que se realizan en la base de datos y son extremadamente importantes para la recuperación de la base de datos de buzones dañados. Un solo archivo de registro de transacciones tiene un tamaño de 1 MB y puede haber miles de ellos en la carpeta de la base de datos del buzón (su número depende de la actividad de los usuarios en la base de datos del buzón).

Hay varias formas de limpiar los registros de transacciones en Exchange:

  1. Realice copias de seguridad periódicas de sus bases de datos de buzones de correo de Exchange. Después de una copia de seguridad correcta, los registros de transacciones que ya no son necesarios para restaurar la base de datos se eliminan automáticamente. Utilice cualquier solución de copia de seguridad de Exchange moderna (Exchange solo admite copias de seguridad basadas en Volume Shadow Copy, VSC). Incluso puede utilizar la función integrada de copia de seguridad de Windows Server;

  2. Habilite el Registro circular para sus registros de transacciones. Cuando el registro circular está habilitado, el registro de transacciones se purga justo después de que las transacciones se hayan aplicado a la base de datos. Puede habilitar el registro circular a través de EAC (habilitar el registro circular en las propiedades de la base de datos del buzón) o mediante PowerShell:

    Set-MailboxDatabase mbxDBname1 -CircularLoggingEnabled $true

    (para aplicar los cambios, debe desmontar y montar la base de datos del buzón);

  3. Mueva la base de datos de Exchange con registros de transacciones a otra unidad grande. De manera predeterminada, cuando instala Exchange, la primera base de datos de buzones se guarda en la carpeta C:\Program Files\Microsoft\Exchange Server\…. Es recomendable mover las bases de datos de buzones desde la unidad del sistema C:. Para ello, utilice el cmdlet Move-DatabasePath. Por ejemplo, para mover la base de datos y los registros de transacciones a la unidad M:, ejecute el comando:

    Move-Databasepath “MDB1” -EdbFilepath “M:\DB\MDB1\databases\mdb1.edb” -LogFolderpath “M:\DB\MDB1\logs\”

Consejo. ¿Cómo mover la base de datos de Exchange a otra unidad?.

La base de datos de la cola de correo inicia sesión en Exchange 2013/2016/2019

La base de datos de colas Mail.que almacena temporalmente los mensajes en espera de la siguiente etapa de procesamiento. El servidor de transporte procesa todos los elementos de cada cola en un orden específico. La base de datos de colas es una base de datos ESE regular. Las colas se ubican únicamente en los servidores de transporte Mailbox o Edge (aquí depende de la versión de Exchange, ya que la arquitectura es diferente en 2013, 2016 y 2019). La ubicación de la base de datos de la cola y sus registros transaccionales se especifica en el archivo de configuración XML %ExchangeInstallPath%Bin\EdgeTransport.exe.config (verifique la

QueueDatabasePath

y

QueueDatabaseLoggingPath

parámetros). Si la base de datos de la cola y sus registros transaccionales ocupan mucho espacio, puede moverla desde el directorio predeterminado

%ExchangeInstallPath%TransportRoles\data\Queue

a otra unidad (para obtener información bastante detallada sobre cómo mover la base de datos de colas, consulte Cambiar la ubicación de la base de datos de colas).

¿Cómo mover registros de transporte en Exchange Server?

Los registros de transporte de Exchange almacenan información sobre todos los mensajes procesados por el servicio MSExchangeTransport. Para obtener información detallada sobre cómo habilitar, deshabilitar o mover registros de transporte en Exchange, consulte el artículo Registros de transporte.

Puede verificar si los registros de transporte están habilitados en su servidor y sus rutas usando los siguientes comandos de PowerShell (EMS):

Get-TransportService -Identity mun-exch1 | fl *logpath*
Get-TransportService -Identity mun-exch1 | fl *logenabled*

Los principales registros de transporte de Microsoft Exchange Server se almacenan en las siguientes carpetas de forma predeterminada:

%ExchangeInstallPath%TransportRoles\Logs\Hub\Connectivity
%ExchangeInstallPath%TransportRoles\Logs\MessageTracking (used when searching messages via Get-MessageTrackingLog)
%ExchangeInstallPath%Logging\IRMLogs
%ExchangeInstallPath%TransportRoles\Logs\Hub\ActiveUsersStats
%ExchangeInstallPath%TransportRoles\Logs\Hub\ServerStats
%ExchangeInstallPath%TransportRoles\Logs\Hub\ProtocolLog\SmtpReceive
%ExchangeInstallPath%TransportRoles\Logs\Hub\Routing
%ExchangeInstallPath%TransportRoles\Logs\Hub\ProtocolLog\SmtpSend
%ExchangeInstallPath%TransportRoles\Logs\Hub\QueueViewer
%ExchangeInstallPath%TransportRoles\Logs\Hub\AgentLog

Puede cambiar la carpeta para almacenar registros de envío/recepción de SMTP (Protocollogs) a través de EAC (Servidores -> servidores -> seleccionar_un_servidor -> Registros de transporte -> Registro de protocolo).

Puede cambiar el registro de seguimiento de mensajesruta a través de EAC.

Además, puede utilizar los enlaces simbólicos para redirigir de forma segura cualquiera de las carpetas de registro de transporte a otra unidad o incluso a una carpeta de red compartida (mediante la ruta UNC). Para crear un enlace simbólico, use la herramienta mklink incorporada:

mklink /d "D:\HubReceiveSMTPLogs" \\filesServer1\HubReceiveSMTPLog

Todo lo que queda es cambiar la ruta al directorio de registro usando el cmdlet:

Set-TransportService mun-exch1 -ReceiveProtocolLogPath “D:\ReceiveSMTPLosg”

Por lo tanto, puede almacenar cualquier registro de transporte de Exchange en una carpeta de red compartida en un servidor remoto. Este método es adecuado para otros registros de Exchange.

Rotar y eliminar archivos de registro de IIS en Exchange

Los registros de IIS contienen información sobre las conexiones a los buzones de correo de Exchange a través de OWA y ActiveSync. Con el tiempo, los registros de IIS que crean los usuarios cuando acceden a Exchange pueden crecer demasiado, si no se controlan.

Puede limpiar automáticamente los registros antiguos de IIS. Puede realizar una tarea automática en el Programador de tareas de Windows que se ejecute todos los días y elimine los registros de IIS que tengan más de 28 días:

set-location c:\inetpub\logs\LogFiles\W3SVC1\
foreach ($File in get-childitem) {
if ($File.LastWriteTime -lt (Get-Date).AddDays(-28)) {
del $File
}
}

Queda por crear una nueva tarea en el Programador de tareas, que debería ejecutar su secuencia de comandos de limpieza de registros de PS1.

Puede ejecutar el script de PowerShell a través del Programador de tareas de la siguiente manera:

  1. Crear una tarea en el Programador de tareas

  2. Crear acción: iniciar un programa;

  3. En el campo programa/script agregue:

     C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
  4. En el campo agregue argumentos (opcional):

    -command "c:\ps\clear_iis_logs.ps1"

Si su Windows bloquea la ejecución de los scripts de PowerShell, debe cambiar la configuración de la política de ejecución de PowerShell, firmar el archivo PS1 con un certificado o ejecutar el script a través del programador con argumentos adicionales:

powershell.exe -NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File c:\ps\clear_iis_logs.ps1

Si necesita conservar registros antiguos de IIS para realizar más análisis y solucionar problemas, puede moverlos a otra ubicación (unidad):

  1. Abra el Administrador de IIS desde Herramientas administrativas y seleccione Sitio web predeterminado;

  2. Abra Registro;

  3. Cambiar la ubicación de registro predeterminada (Directorio);

  4. Guarde los cambios y reinicie IIS. El siguiente archivo de registro se escribirá en la nueva ubicación.

También puede cambiar la ruta a los registros de IIS mediante PowerShell:

Import-Module WebAdministration
Set-ItemProperty ‘IIS:\Sites\Default Web Site’ -name logfile.directory "M:\IISLogs"

Borrado de la carpeta de registro en Exchange

Una gran cantidad de registros de diferentes servicios de Exchange se almacenan en la carpeta Logging (por ejemplo, en Exchange 2013, esta es C:\Program Files\Microsoft\Exchange Server\V15\Logging). Con el tiempo, pueden consumir una cantidad significativa de espacio en disco. De particular interés son los registros de diagnóstico y rendimiento en C:\Program Files\Microsoft\Exchange Server\V15\Logging\Diagnostics (con diagnósticos muy detallados habilitados, pueden ocupar decenas de gigabytes).

Puede usar PowerShell para eliminar archivos de registro antiguos de Exchange en estas carpetas. El siguiente script eliminará todos los registros de estas carpetas que tengan más de 21 días:

Get-ChildItem 'C:\Program Files\Microsoft\Exchange Server\V15\Logging','C:\inetpub\logs' -Directory | gci -Include '*.log','*.blg' -Recurse | ? LastWriteTime -lt (Get-Date).AddDays(-21) | Remove-Item

Puede preferir eliminar solo los archivos de registro de diagnóstico:

Get-ChildItem 'C:\Program Files\Microsoft\Exchange Server\V15\Logging\Diagnostics' -Directory | gci -Include '*.log','*.blg' -Recurse | ? LastWriteTime -lt (Get-Date).AddDays(-5) | Remove-Item

Puede agregar estos scripts de PowerShell a su Programador de tareas para borrar automáticamente los registros antiguos de Exchange.

Limpieza de registros de Exchange con PowerShell Script

Puede unir todos los comandos anteriores para limpiar los registros antiguos de Exchange en un script de PowerShell que puede ejecutar de forma programada:

$days = 14
$dirs=@(
"C:\inetpub\logs\LogFiles\",
"C:\Program Files\Microsoft\Exchange Server\V15\Logging\",
"C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\Diagnostics\ETLTraces\",
"C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\Diagnostics\Logs\",
"C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\"
)
Get-ChildItem $dirs -Recurse -File | Where-Object { $_.Name -like "*.log" -or $_.Name -like "*.blg" -or $_.Name -like "*.etl" } | Where-Object LastWriteTime -lt (Get-Date).AddDays(-$days) | Remove-Item -ErrorAction "SilentlyContinue"

Artículos relacionados