パイプライン トレースを使用したトランスポート エージェント問題の診断

 

適用先: Exchange Server 2007 SP1, Exchange Server 2007

トピックの最終更新日: 2007-02-12

パイプライン トレースは Microsoft Exchange Server 2007 の診断機能で、トランスポート パイプライン内で簡易メール転送プロトコル (SMTP) イベントに登録されているトランスポート エージェントを検出したときに、電子メール メッセージに関する診断情報を取得することができます。Exchange は、各トランスポート エージェントによってメッセージ スナップショット ファイル内のトランスポート パイプライン内のメッセージに適用される変更内容に関する詳細情報を取得します。トランスポート ルールが構成されると、Exchange Server でも、各トランスポート ルールによってこれらのメッセージに適用されるアクションが記録されます。

パイプライン トレースは組織内のサーバーごとに構成され、ハブ トランスポート サーバーの役割およびエッジ トランスポート サーバーの役割がインストールされているコンピュータで有効にすることができます。

パイプライン トレースを有効にして、パイプライン トレース ログ ファイルの既定の場所を使用する場合、C:\Program Files\Microsoft\Exchange Server\TransportRoles\Logs\PipelineTracing が作成されます。このディレクトリには、MessageSnapshots ディレクトリおよび RulesTracking ディレクトリが含まれます。

パイプライン トレースの実装

パイプライン トレースは、特定の送信者の SMTP 電子メール アドレスからのみ送信されたメッセージをログ出力するように設計されています。送信者の SMTP アドレスには、Exchange 組織の内部または外部のメールボックスを指定できます。パイプライン トレースを有効にする前に、パイプライン トレースの送信者 SMTP アドレスを指定する必要があります。パイプライン トレースの送信者 SMTP アドレスを構成するには、Set-TransportServer コマンドレットで PipelineTracingSenderAddress パラメータを使用します。

パイプライン トレースの送信者 SMTP アドレスを構成した後で、必要に応じてパイプライン トレース ログ ファイルの場所を変更することができます。パイプライン トレース ログ ファイルはローカル コンピュータに保存する必要があります。汎用名前付け規則 (UNC) によるファイル パスやマップされたドライブは使用できません。

Caution注意 :
パイプライン トレースでは、送信者の電子メール アドレスから送信された電子メール メッセージの内容が完全にコピーされます。機密情報の不要な公開を防ぐには、パイプライン トレース ログ ファイルの場所に対して、適切なセキュリティのアクセス許可を設定する必要があります。
Caution注意 :
パイプライン トレースを長時間にわたって有効にしないでください。パイプライン トレースでは詳細なログ ファイルが作成され、すぐに蓄積されます。パイプライン トレースを有効にしている場合は、使用可能なディスクの空き領域を常に監視してください。

パイプライン トレース ログ ファイルの場所を構成するには、Set-TransportServer コマンドレットで PipelineTracingPath パラメータを使用します。詳細については、「Set-TransportServer」を参照してください。

パイプライン トレースを有効化し、パイプライン トレースの送信者アドレスを構成する方法の詳細については、「パイプライン トレースを有効にする方法」を参照してください。

メッセージ スナップショット ファイル

メッセージ スナップショットとは、トランスポート エージェントによってメッセージに加えられる変更があればそれを正確に取得するファイルです。メッセージ スナップショット ファイルの内容を調べると、トランスポート エージェントによって、期待したトランスポート パイプライン内のメッセージに変更が加えられたかどうかを確認することができます。問題のトラブルシューティングを行う場合は、どのトランスポート エージェントに問題があるのかを確認する必要があります。次に、トラブルシューティングの対象をそのエージェントに絞って問題を解決します。その後、メッセージ スナップショット ファイルを再び表示すると、ソリューションが成功したことを確認できます。

パイプライン トレースを有効にすると、Exchange では MessageSnapshots ディレクトリ内に、トランスポート パイプラインを流れるメッセージごとに 1 つずつディレクトリが作成されます。各ディレクトリは、Microsoft Exchange を実行しているコンピュータによってディレクトリ名としてメッセージに割り当てられている GUID を使用して作成されます。複数の Exchange サーバーでパイプライン トレースが有効になっている場合は、Exchange サーバーごとにメッセージに異なる GUID が割り当てられます。

Exchange によって、各メッセージ ディレクトリ内に, .eml 拡張子が付いた複数のメッセージ スナップショット ファイルが作成されます。これらのメッセージ スナップショット ファイルには、各イベントおよびトランスポート エージェントの検出時におけるメッセージの内容が含まれます。

Exchange によって、以下の 4 つのイベントに登録されるエージェントのメッセージ スナップショットが作成されます。

  • OnEndofData
  • OnEndOfHeaders
  • OnSubmittedMessage
  • OnRoutedMessage

イベントに対してトランスポート エージェントが登録されると、メッセージが任意のトランスポート エージェントを検出する前に、Exchange によってメッセージのメッセージ スナップショットが作成されます。これにより、メッセージがそのイベントに対して登録されているトランスポート エージェントを検出する前に、メッセージがコピーされます。次に、トランスポート エージェントによってメッセージの内容が変更されるかどうかにかかわらず、メッセージが検出したトランスポート エージェントごとに新しいメッセージ スナップショットが作成されます。ただし、イベントに登録されているエージェントがない場合は、Exchange によってそのイベントのメッセージ スナップショットは作成されません。

たとえば、OnEndofData イベントに 3 つのエージェントが登録されているにもかかわらず、2 つのトランスポート エージェントのみがメッセージを変更する場合は、4 つのメッセージ スナップショットが作成されます。1 つ目のメッセージ スナップショットでは、OnEndofData イベントに登録されているトランスポート エージェントによって変更が加えられる前に、そのイベントの検出時にメッセージを取得します。その後、トランスポート エージェントによってメッセージが変更されるかどうかにかかわらず、トランスポート エージェントごとにメッセージ スナップショットが 1 つずつ作成されます。

次に、エッジ トランスポート サーバーの役割の既定のインストールで作成されるファイルの例を示します。

  • Original.eml   このファイルには、イベントまたはトランスポート エージェントを検出する前の、電子メール メッセージの元の変更されていない内容が含まれます。イベントにトランスポート エージェントが構成されていない場合は、このファイルのみが作成されます。
  • SmtpReceive0001.eml ~ SmtpReceive0009.eml   これらのファイルには、OnEndofData および OnEndOfHeaders イベントと、トランスポート パイプライン内の SMTP 受信部分内のそれらのイベントに登録されているトランスポート エージェントを検出したときの、電子メール メッセージの内容が含まれます。
  • Routing0001.eml および Routing0002.eml   これらのファイルには、OnSubmittedMessage および OnRoutedMessage イベントと、トランスポート パイプラインの分類部分内のそれらのイベントに登録されているトランスポート エージェントを検出したときの、電子メール メッセージの内容が含まれます。

メッセージ スナップショット ファイルは、メモ帳などのテキスト エディタを使用して開くことができます。

各メッセージ スナップショット ファイルの先頭には、メッセージの本文に追加されているヘッダーと、そのメッセージ スナップショット ファイルが関連付けられている SMTP イベントおよびトランスポート エージェントの一覧が含まれます。これらのヘッダーは、先頭に X-CreatedBy: MessageSnapshot-Begin injected headers、末尾に X-EndOfInjectedXHeaders: MessageSnapshot-End injected headers が付きます。これらのヘッダーは、以降のトランスポート エージェントによって、各メッセージ スナップショット ファイル内で置き換えられます。次に、OnEndOfHeaders イベントの接続フィルタ エージェントによって処理される電子メール メッセージに追加されるヘッダーの例を示します。

X-CreatedBy: MessageSnapshot-Begin injected headers
X-MessageSnapshot-UTC-Time: 2006-07-31T23:18:55.972Z
X-MessageSnapshot-Protocol-Id: 08C87FF14CCC969C;2006-07-31T23:18:53.408Z;1
X-MessageSnapshot-Source: OnEndOfHeaders,Connection Filtering Agent
X-Sender: david@nwtraders.com
X-Receiver: chris@contoso.com
X-EndOfInjectedXHeaders: MessageSnapshot-End injected headers

メッセージ スナップショット ヘッダーの下には、元のメッセージ ヘッダーすべてを含む、メッセージの内容が含まれます。トランスポート エージェントによってメッセージの内容が変更される場合は、その変更内容がメッセージに統合されて表示されます。各トランスポート エージェントによってメッセージが処理されるときに、各エージェントによって加えられる変更内容がメッセージの内容に適用されます。トランスポート エージェントによってメッセージの内容に加えられる変更がない場合は、そのエージェントによって作成されるメッセージ スナップショットは、前のトランスポート エージェントによって作成されたメッセージ スナップショットと同じになります。

ルール追跡ファイルの閲覧

ルール追跡ファイルは、ハブ トランスポート サーバーのトランスポート ルール エージェントまたはエッジ トランスポート サーバーのエッジ ルール エージェントを検出したメッセージに適用された各トランスポート ルールの結果を取得します。ルール追跡ファイルによって取得された結果は、トランスポート ルールによってメッセージに対してアクションが実行されたかどうかを示します。トランスポート ルールによってアクションが実行された場合、ルール追跡ファイルは実行されたアクションを示します。ルール追跡ファイルには、コンマ区切り (.csv) 形式で以下のフィールドが含まれます。

  • [日時]   このフィールドは、トランスポート ルールが実行された日付および時刻を、世界協定時刻 (UTC) またはグリニッジ標準時で示します。
  • メッセージ ID   このフィールドは、メッセージ ヘッダー内にある MessageID: フィールドの値を示します。この値は、メッセージの有効期間全体にわたって不変で、Exchange 組織内でのメッセージのパスの履歴を管理するためにメッセージ追跡ログと共に使用できます。
  • ルール名   このフィールドは、メッセージに対して実行されるトランスポート ルールの名前を示します。
  • 詳細   このフィールドは、メッセージに適用されるトランスポート ルールのアクションの値を示します。単一のトランスポート ルールのアクションに対して複数の値が設定されている場合、それらの値はセミコロン (;) で区切られます。トランスポート ルールがメッセージに適用されない場合は、"条件が FALSE であると評価されました。ルールをスキップします。" という文字列が挿入されます。
  • アクション   このフィールドは、メッセージに適用されるトランスポート ルールのアクションを示します。トランスポート ルールがメッセージに適用されない場合は、**「NoAction」**という文字列が挿入されます。
  • 送信者アドレス送信者アドレス   このフィールドは、メッセージの送信者の SMTP アドレスを示します。
  • Recipient-Address   このフィールドは、メッセージの単一または複数の受信者の SMTP アドレスを示します。トランスポート ルールの条件を満たす複数の受信者に送信されたメッセージに対してトランスポート ルールのアクションが適用される場合、それらの受信者はセミコロン (;) で区切られます。

メッセージに適用される各トランスポート ルールは、ルール追跡ファイル内の各行に記述されます。たとえば、トランスポート ルールに 3 つのアクションがある場合、各トランスポート ルールのアクションの結果は、ルール追跡ファイル内の各行に記述されます。

電子メール メッセージに複数の受信者が含まれていて、トランスポート ルールの条件の一部を満たしていない受信者がいる場合、トランスポート ルールの条件を満たさない受信者は、切り離して別の行に記述されます。

詳細情報

トランスポート パイプライン、トランスポート エージェント、および Exchange 2007 のメッセージ追跡ログの詳細については、以下のトピックを参照してください。

参照している情報が最新であることを確認したり、他の Exchange Server 2007 ドキュメントを見つけたりするには、Exchange Server TechCenter を参照してください。