프로토콜 로깅

적용 대상: Exchange Server 2013

프로토콜 로깅은 메시지 배달의 일부로 메시징 서버 간에 발생하는 SMTP 대화를 기록합니다. 이러한 SMTP 대화는 클라이언트 액세스 서버의 프런트 엔드 전송 서비스 및 사서함 서버의 전송 서비스 그리고 사서함 서버의 사서함 전송 서비스에 있는 송신 커넥터와 수신 커넥터에서 발생합니다. 프로토콜 로깅을 사용하여 메일 흐름 문제를 진단할 수 있습니다.

기본적으로 프로토콜 로깅은 모든 송신 커넥터 및 수신 커넥터에서 비활성화되어 있습니다. 프로토콜 로깅은 커넥터에 따라 활성화 또는 비활성화됩니다. 다른 프로토콜 로깅 옵션은 서버의 각 개별 전송 서비스에 있는 모든 수신 커넥터 또는 모든 송신 커넥터에 대해 설정됩니다. 전송 서비스의 모든 수신 커넥터는 동일한 프로토콜 로그 파일과 프로토콜 로그 옵션을 공유합니다. 이러한 프로토콜 로그 파일 및 프로토콜 로그 옵션은 동일한 서버의 전송 서비스에 있는 송신 커넥터 프로토콜 로그 파일 및 프로토콜 로그 옵션과 구분됩니다.

Exchange 서버의 각 전송 서비스에 있는 모든 송신 커넥터나 모든 수신 커넥터의 프로토콜 로그에 대해 다음 옵션을 사용할 수 있습니다.

  • 송신 커넥터나 수신 커넥터 프로토콜 로그 파일의 위치를 지정합니다.
  • 송신 커넥터나 수신 커넥터 프로토콜 로그 파일의 최대 크기를 지정합니다. 기본 크기는 10MB입니다.
  • 송신 커넥터나 수신 커넥터 프로토콜 로그 파일이 포함된 디렉터리의 최대 크기를 지정합니다. 기본 크기는 250MB입니다.
  • 송신 커넥터나 수신 커넥터 프로토콜 로그 파일의 최대 보존 기간을 지정합니다. 기본 보존 기간은 30일입니다.

기본적으로 Exchange는 순환 로깅을 사용하여 파일 크기 및 파일 보존 기간을 기준으로 프로토콜 로그를 제한함으로써 로그 파일이 사용하는 하드 디스크 공간 제어에 도움을 줍니다.

조직 내 송신 커넥터라는 특수 송신 커넥터가 모든 사서함 서버의 전송 서비스와 모든 클라이언트 액세스 서버의 프런트 엔드 전송 서비스에 있습니다. 이 커넥터는 암시적으로 만들어지고 표시되지 않으며 관리할 필요가 없습니다. 조직 내 송신 커넥터는 다음 전송 서비스에서 사용됩니다.

  • 사서함 서버의 전송 서비스
    • 조직의 다른 Exchange 2013 사서함 서버에 있는 전송 서비스와 사서함 전송 서비스로 메시지를 릴레이합니다.
    • 조직의 다른 Exchange 2007 또는 Exchange 2010 허브 전송 서버로 메시지를 릴레이합니다.
    • 경계 네트워크의 Edge 전송 서버로 메시지를 릴레이합니다.
  • 클라이언트 액세스 서버의 프런트 엔드 전송 서비스: organization Exchange 2013 사서함 서버의 전송 서비스에 메시지를 릴레이합니다.

사서함 배달 송신 커넥터라는 동등한 송신 커넥터가 모든 사서함 서버의 사서함 전송 서비스에 있습니다. 이 커넥터도 암시적으로 만들어져 보이지 않으므로 관리할 필요가 없습니다. 사서함 배달 송신 커넥터는 조직의 다른 사서함 서버에 있는 전송 서비스와 사서함 전송 서비스로 메시지를 릴레이하는 데 사용됩니다.

기본적으로 사서함 배달 송신 커넥터의 프로토콜 로깅도 사용하지 않도록 설정됩니다. Set-MailboxTransportService cmdlet의 MailboxDeliveryConnectorProtocolLoggingLevel 매개 변수를 사용하여 사서함 배달 송신 커넥터에 대한 프로토콜 로깅을 사용하거나 사용하지 않도록 설정할 수 있습니다. 사서함 배달 송신 커넥터의 프로토콜 로깅을 사용하도록 설정하면 사서함 서버의 사서함 전송 서비스에 대한 송신 커넥터 프로토콜 로그에 로깅이 발생합니다.

프로토콜 로그 파일의 구조

기본적으로 프로토콜 로그 파일은 다음 위치에 있습니다.

  • 사서함 서버의 전송 서비스에 대한 커넥터 프로토콜 로그 파일 받기: %ExchangeInstallPath%TransportRoles\Logs\Hub\ProtocolLog\SmtpReceive

  • 사서함 서버의 사서함 전송 서비스에 대한 커넥터 프로토콜 로그 파일 받기: %ExchangeInstallPath%TransportRoles\Logs\Mailbox\ProtocolLog\SmtpReceive

  • 클라이언트 액세스 서버의 프런트 엔드 전송 서비스에 대한 커넥터 프로토콜 로그 파일 수신: %ExchangeInstallPath%TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpReceive

  • 사서함 서버의 전송 서비스에 대한 커넥터 프로토콜 로그 파일 보내기: %ExchangeInstallPath%TransportRoles\Logs\Hub\ProtocolLog\SmtpSend

  • 사서함 서버의 사서함 전송 서비스에 대한 커넥터 프로토콜 로그 파일 보내기: %ExchangeInstallPath%TransportRoles\Logs\Mailbox\ProtocolLog\SmtpSend

  • 클라이언트 액세스 서버에서 프런트 엔드 전송 서비스에 대한 커넥터 프로토콜 로그 파일 보내기: %ExchangeInstallPath%TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpSend

각 프로토콜 로그 디렉터리의 로그 파일에 대한 명명 규칙은 PrefixyyyyMMdd-nnnn.log. 자리 표시자는 다음 정보를 표시합니다.

  • 자리 표시자 접두 사는 송신 커넥터의 경우 SEND이거나 수신 커넥터의 경우 RECV입니다.
  • 자리 표시자 yyyyMMdd 는 로그 파일을 만든 UTC(협정 세계시) 날짜입니다. 자리 표시자 yyyy = year, MM = month 및 dd = day입니다.
  • 자리 표시자 nnnn은 매일 값 1에서 시작하는 instance 숫자입니다.

파일 크기가 지정된 최대 값에 도달할 때까지 로그 파일에 정보가 기록되며, 증가된 인스턴스 번호를 지닌 새 로그 파일이 열립니다. 이 프로세스는 하루 종일 반복됩니다. 프로토콜 로그 디렉터리가 지정된 최대 크기에 도달하거나 로그 파일이 지정된 최대 보존 기간에 도달하면 순환 로깅은 가장 오래된 로그 파일을 삭제합니다.

프로토콜 로그 파일은 쉼표로 분리된 값 파일(CSV) 형식의 데이터가 포함된 텍스트 파일입니다. 각 프로토콜 로그 파일에는 다음과 같은 정보가 들어있는 헤더가 있습니다.

  • #Software: 프로토콜 로그 파일을 만든 소프트웨어의 이름입니다. 일반적으로 이 값은 Microsoft Exchange Server입니다.

  • #Version: 프로토콜 로그 파일을 만든 소프트웨어의 버전 번호입니다. 현재 이 값은 15.0.0.0입니다.

  • #Log 형식: SMTP 수신 프로토콜 로그 또는 SMTP 송신 프로토콜 로그인 이 필드의 로그 형식 값입니다.

  • #Date: 로그 파일을 만든 UTC 날짜-시간입니다. UTC 날짜-시간은 ISO 8601 날짜-시간 형식으로 표시됩니다 . yyyy-MM-ddThh:mm:ss.fffZ, 여기서 yyyy = year, MM = month, dd = day, T는 시간 구성 요소의 시작을 나타내고, hh = hour, mm = minute, ss = second, fff = 초의 분수, Z는 UTC를 나타내는 또 다른 방법인 Zulu를 나타냅니다.

  • #Fields: 프로토콜 로그 파일에 사용되는 쉼표로 구분된 필드 이름입니다.

프로토콜 로그에 기록되는 정보

프로토콜 로그는 각 SMTP 프로토콜 이벤트를 프로토콜 로그의 한 줄에 저장합니다. 각 줄에 저장된 정보는 필드별로 구성됩니다. 이러한 필드는 쉼표로 구분됩니다. 다음 표에서는 각 프로토콜을 분류하는 데 사용되는 필드에 대해 설명합니다.

각 프로토콜 이벤트를 분류하는 데 사용되는 필드

필드 이름 설명
date-time 프로토콜 이벤트의 UTC 날짜-시간입니다. UTC 날짜-시간은 ISO 8601 날짜-시간 형식으로 표시됩니다 . yyyy-MM-ddThh:mm:ss.fffZ, 여기서 yyyy = year, MM = month, dd = day, T는 시간 구성 요소의 시작을 나타내고, hh = hour, mm = minute, ss = second, fff = 초의 분수, Z는 UTC를 나타내는 또 다른 방법인 Zulu를 나타냅니다.
connector-id SMTP 이벤트와 연결된 커넥터의 DN(고유 이름)입니다.
session-id 각 SMTP 세션에 대해서는 고유하지만 해당 SMTP 세션과 연결된 각 이벤트에 대해서는 동일한 GUID입니다.
sequence-number 같은 SMTP 세션 내에서 각 이벤트에 대해 0에서 시작하여 증가되는 카운터입니다.
local-endpoint SMTP 세션의 로컬 끝점입니다. IP 주소 및 IP 주소:<포트 형식의 TCP 포트> 번호로 <>구성됩니다.
remote-endpoint SMTP 세션의 원격 끝점입니다. IP 주소 및 IP 주소:<포트 형식의 TCP 포트> 번호로 <>구성됩니다.
이벤트 프로토콜 이벤트를 표시하는 단일 문자입니다. 이벤트에 대해 가능한 값은 다음과 같습니다.
  • +:연결
  • -:분리
  • >:보내기
  • <:받기
  • *:정보
데이터 SMTP 이벤트와 연결된 텍스트 정보입니다.
컨텍스트 SMTP 이벤트와 연결될 수 있는 추가적인 문맥 정보입니다.

단일 전자 메일 메시지의 송수신을 나타내는 단일 SMTP 대화는 여러 SMTP 이벤트를 생성합니다. 이러한 SMTP 이벤트에 따라 여러 줄이 프로토콜 로그에 기록됩니다. 복수 전자 메일 메시지의 송수신을 나타내는 복수 SMTP 대화는 동시에 발생할 수 있습니다. 이에 따라 떨어져 있는 서로 다른 SMTP 대화에서 프로토콜 로그 항목이 만들어집니다. 그러나 session-id 및 sequence-number 필드를 사용하여 SMTP 대화별로 프로토콜 로그 항목을 정렬할 수 있습니다.