Además de analizar directamente los archivos de registro de transporte, el seguimiento de mensajes en MS Exchange Server 2013 es muy fácil de realizar con la ayuda de Registros de seguimiento de mensajes herramienta. En este post discutiremos algunas características de la Get-MessageTrackingLog cmdlet, que se creó específicamente para procesar registros de seguimiento de mensajes.
Puede ejecutar el cmdlet sin ningún parámetro adicional:
Get-MessageTrackingLog
Los datos se tomarán del servidor en el que se ejecuta el comando. De forma predeterminada, se mostrarán todos los eventos de transmisión de mensajes de los últimos 30 días (no más de 1000).
La salida del cmdlet no es muy conveniente.
Para eliminar el límite de 1000 cadenas, puede utilizar el -ResultSize opción, estableciendo el valor en Ilimitado (tenga cuidado, puede cargar mucho el servidor). Los resultados se pueden mostrar página por página (dependiendo del tamaño de la consola) usando el Anfitrión externo cmdlet.
Get-MessageTrackingLog | Out-Host –Paging
La tecla -Paging es responsable de la salida paginada.
Es más conveniente, pero los datos aún parecen completamente poco informativos.
De hecho, los registros de seguimiento de mensajes contienen mucha información y parte de ella puede ser extremadamente útil para analizar el funcionamiento del servidor, monitorear mensajes y muchas otras tareas. Los archivos de registro de seguimiento de mensajes en formato de texto se almacenan en el directorio %ExchangeInstallPath%TransportRolesLogsMessageTracking. El análisis manual de estos registros es muy inconveniente y difícil para cualquier administrador de Exchange.
Si desea mostrar los valores de solo ciertas columnas, se encontrará con dificultades. ¡El hecho es que los nombres de las columnas en el archivo y los nombres de las mismas columnas en Powershell son diferentes! ¡Los desarrolladores de Microsoft no están buscando formas fáciles! 🙂 Para ayudarlo a obtener los nombres de las columnas, puede usar el Formato-Lista cmdlet (fl), que muestra las propiedades de cada objeto en una línea separada. Mostramos todos los campos y datos para la primera entrada de registro.
Get-MessageTrackingLog | Select-Object -First 1 | Format-List
Ahora es posible con soltura explotar los datos recibidos y seleccionar solamente que es necesario. Por ejemplo, desea ver a través de qué conectores pasa el mensaje (restringimos el área de búsqueda especificando el asunto de la carta), cuando lo envía desde dentro de la organización al destinatario interno. Para hacer esto, usamos el ID de conector propiedad. Puedes usar el Formato-Tabla (ft) cmdlet para presentar los datos en forma de tabla. Alinee el ancho de las columnas con el -Tamaño automático:
Get-MessageTrackingLog -MessageSubject "test" | Format-Table Timestamp,ConnectorID,EventID,Source -AutoSize
Y aquí está la salida del comando:
Todo es simple y claro e incluso los nombres de los conectores, incluidos los del sistema, son visibles.
Finalmente, intentaremos procesar la salida de Get-MessageTrackingLog con la ayuda de un muy interesante Grupo-Objeto cmdlet. Le permite agrupar objetos por alguna propiedad y contar su número. Este cmdlet generalmente se usa en último lugar (o uno de los últimos), porque crea nuevos objetos en la canalización y ya no puede procesar los objetos del cmdlet Get-MessageTrackingLog.
Intentaremos contar el número de todos los mensajes enviados por los usuarios de nuestra organización a los destinatarios en Gmail.com. Para hacer esto, debe ingresar una condición adicional que filtrará los destinatarios necesarios. Puede hacer esto con la ayuda de Where-Object.
Get-MessageTrackingLog -EventId "Send" -ResultSize Unlimited | Where-Object {$_.Recipients -like "*@gmail.com"} | Group-Object Recipients | Sort-Object Count -Descending | Format-Table *
No tan difícil Esto es lo que vimos en los resultados:
No recomendamos poner la clave -ResultSize Unlimited sin especificar la fecha de inicio. Puede configurar la fecha de esta manera. -Inicio (Obtener-Fecha).AgregarDías(-1). El comando devolverá la marca de tiempo actual y le restará un día. Es decir, se le devolverán las estadísticas de los destinatarios de las últimas 24 horas.
También debe recordar que cada servidor de Exchange tiene sus propios archivos de registro de seguimiento. Por lo tanto, este comando debe ejecutarse en todos los servidores de buzones de Exchange de su organización.