Exchange Server: 메시지 추적 로그 검색

메시지 추적 기능은 메시지가 사서함 서버 및 Edge 전송 서버의 전송 파이프라인을 통해 흐를 때 메시지 작업을 기록합니다. Exchange 관리 셸에서 Get-MessageTrackingLog cmdlet을 사용하여 특정 검색 조건에 따라 메시지 추적 로그의 항목을 검색할 수 있습니다. 예를 들면 다음과 같습니다.

  • 사용자가 특정 받는 사람에게 보낸 메시지에서 어떤 작업이 수행되었는지 알아봅니다.

  • 메일 흐름 규칙(전송 규칙이라고도 함)이 메시지에 대해 작동했는지 알아봅니다.

  • 인터넷 보낸 사람이 보낸 메시지가 사용자의 Exchange 조직으로 전송되는지여부를 확인합니다.

  • 지정된 기간 중에 지정된 사용자가 보낸 모든 메시지를 찾습니다.

시작하기 전에 알아야 할 내용

  • 예상 완료 시간: 10분

  • 이러한 절차를 수행하려면 먼저 사용 권한을 할당받아야 합니다. 필요한 권한을 보려면 메일 흐름 권한 항목의 "메시지 추적" 항목을 참조하세요.

  • 메시지 추적 로그를 검색하려면 Microsoft Exchange Transport Log Search 서비스가 실행 중이어야 합니다. 이 서비스를 사용하지 않도록 설정하거나 중지하면 메시지 추적 로그를 검색하거나 배달 보고서를 실행할 수 없습니다. 그러나 이 서비스를 중지해도 Exchange의 다른 기능에는 영향을 주지 않습니다.

  • Get-MessageTrackingLog cmdlet의 결과에 표시된 필드 이름은 메시지 추적 로그 파일에 사용되는 실제 필드 이름과 유사합니다. 가장 큰 차이점은 다음과 같습니다.

    • 필드 이름에서 대시가 제거됩니다. 예를 들어 internal-message-id 는 로 InternalMessageId표시됩니다.

    • 날짜-시간 필드는 로 Timestamp표시됩니다.

    • 받는 사람 주소 필드는 로 Recipients표시됩니다.

    • 보낸 사람 주소 필드는 로 Sender표시됩니다.

  • 메시지 추적 로그의 date-time 필드에는 정보가 UTC(Coordinated Universal Time)로 저장됩니다. 그러나 검색을 수행하는 데 사용하는 컴퓨터의 지역별 날짜-시간 형식으로 시작 또는 종료 매개 변수에 대한 날짜-시간 검색 조건을 입력해야 합니다.

  • Get-MessageTrackingLog cmdlet을 사용하여 다른 Exchange 서버에서 메시지 추적 로그 파일을 복사한 다음 검색할 수는 없습니다. 또한 기존 메시지 추적 로그 파일을 수동으로 저장하면 해당 파일의 날짜-시간 스탬프가 변경되어 Exchange에서 메시지 추적 로그를 검색하는 데 사용하는 쿼리 논리가 손상됩니다.

  • Exchange 2016에서 Get-MessageTrackingLog cmdlet은 동일한 Active Directory 사이트의 Exchange 2013 사서함 서버 및 Exchange 2010 Hub 전송 서버에서 메시지 추적 로그를 검색할 수 있습니다. Exchange 2019에서 Get-MessageTrackingLog cmdlet은 동일한 Active Directory 사이트의 Exchange 2016 및 Exchange 2013 사서함 서버에서 메시지 추적 로그를 검색할 수 있습니다.

  • 이 항목의 절차에 적용할 수 있는 바로 가기 키에 대한 자세한 내용은 Exchange 관리 센터의 바로 가기 키을 참조하세요.

문제가 있습니까? Exchange Server, Exchange Online 또는 Exchange Online Protection. 무슨 작업을 하고 싶으십니까?

Exchange 관리 셸을 사용하여 메시지 추적 로그 검색

특정 이벤트에 대한 메시지 추적 로그 항목을 검색하려면 다음 구문을 사용합니다.

Get-MessageTrackingLog [-Server <ServerIdentity>] [-ResultSize <Integer> | Unlimited] [-Start <DateTime>] [-End <DateTime>] [-EventId <EventId>] [-InternalMessageId <InternalMessageId>] [-MessageId <MessageId>] [-MessageSubject <Subject>] [-Recipients <RecipientAddress1,RecipientAddress2...>] [-Reference <Reference>] [-Sender <SenderAddress>]

서버에서 최근 메시지 추적 로그 항목 1,000개를 보려면 다음 명령을 실행합니다.

Get-MessageTrackingLog

이 예제에서는 로컬 서버의 메시지 추적 로그에서 메시지 발신자pat@contoso.com가 인 모든 FAIL 이벤트에 대해 2015년 3월 28일 오전 8:00부터 2015년 3월 28일 오후 5:00까지의 모든 항목을 검색합니다.

Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2015 8:00AM" -End "3/28/2015 5:00PM" -EventId "Fail" -Sender "pat@contoso.com"

다음 구문을 사용합니다.

Get-MessageTrackingLog <SearchFilters> | <Format-Table | Format-List> [<FieldNames>] [<OutputFileOptions>]

이 예제에서는 다음 검색 조건을 사용하여 메시지 추적 로그를 검색합니다.

  • 처음 1,000개 Send 이벤트에 대한 결과를 반환합니다.

  • 결과를 목록 형식으로 표시합니다.

  • 또는 Recipient로 시작하는 Send 필드 이름만 표시합니다.

  • 라는 새 파일에 출력 쓰기 D:\Send Search.txt

Get-MessageTrackingLog -EventId Send | Format-List Send*,Recipient* | Set-Content -Path "D:\Send Search.txt"

Exchange 관리 셸을 사용하여 메시지 추적 로그에서 여러 서버의 메시지 항목 검색

일반적으로 MessageID: 헤더 필드의 값은 메시지가 Exchange 조직 전체를 이동하는 과정에서 일정하게 유지됩니다. 이 속성 이름은 큐 뷰어 유틸리티에서는 InternetMessageId 이고 메시지 추적 로그 보기 유틸리티에서는 MessageId 입니다. 특정 메시지의 MessageID: 값을 확인한 후에는 Exchange 조직의 모든 사서함 서버에 있는 메시지 추적 로그에서 해당 메시지에 대한 정보를 검색할 수 있습니다.

모든 사서함 서버 및 Exchange 2010 허브 전송 서버에서 특정 메시지에 대한 모든 메시지 추적 로그 항목을 검색하려면 다음 구문을 사용합니다.

$Servers = Get-ExchangeServer;  $Servers | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -MessageId <MessageID>  | Select-Object <CommaSeparatedFieldNames>  | Sort-Object -Property <FieldName>

이 예제에서는 다음 검색 조건을 사용하여 모든 사서함 서버 및 Exchange 2010 허브 전송 서버에서 메시지 추적 로그를 검색합니다.

  • MessageID:<ba18339e-8151-4ff3-aeea-87ccf5fc9796@mailbox01.contoso.com>이 인 메시지와 관련된 항목을 찾습니다. 꺾쇠 괄호 문자(<>)를 생략할 수 있습니다. 생략하지 않을 경우 전체 MessageID: 값을 따옴표로 묶어야 합니다.

  • 각 항목에 대해 필드 date-time, server-hostname, client-hostname, source, event-idrecipient-address 를 표시합니다.

  • 결과를 date-time 필드 기준으로 정렬합니다.

$Servers = Get-ExchangeServer; $Servers | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -MessageId ba18339e-8151-4ff3-aeea-87ccf5fc9796@mailbox01.contoso.com | Select-Object Timestamp,ServerHostname,ClientHostname,Source,EventId,Recipients | Sort-Object -Property Timestamp

EAC를 사용하여 메시지 추적 로그 검색

EAC(Exchange 관리 센터)의 관리자용 배달 보고서 기능을 사용하여 메시지 추적 로그에서 조직의 특정 사서함이 보냈거나 받은 메시지에 대한 정보를 검색할 수 있습니다. 자세한 내용은 배달 보고서로 메시지 추적을 참조하세요.