前へ    目次    索引    次へ
iPlanet Messaging Server 5.1 管理者ガイド

第 12 章 ログ記録とログ解析


iPlanet Messaging Server では、ログファイルを作成して、管理に関連したサーバのイベント、サーバでサポートされているプロトコル (SMTP、POP、IMAP、HTTP) を使った通信関連のイベント、およびサーバで処理されるその他のプロセスに関連するイベントを記録できます。そのログファイルを調べれば、サーバのアクションをさまざまな観点から監視できます。

MTA は他のサービスとは異なるログ機構を使用しているため、iPlanet Console を使ってログサービスを設定したりログを表示することはできません。設定ファイルに情報を定義することで、MTA のログ設定を行います。この章は、以下のように 3 部構成になっています。第 1 部では概要について、第 2 部ではメッセージストアおよび管理のログ、第 3 部では MTA サービスのログについて説明します。

第 1 部 概要

第 2 部 サービスログ (メッセージストアおよび管理サーバ)

第 3 部 サービスログ (MTA)


第 1 部 概要



Messaging Server ログファイルの作成と管理に関するポリシーはカスタマイズできます。この章では、ログファイルの種類と構造、およびログファイルの管理と表示方法について説明します。


サービスとログファイル

Messaging Server は、サポートしている主なプロトコルやサービスごとに一連のログファイルを作成します。ログファイルの各タイプは、個別にカスタマイズしたり表示することができます。表 12-1 に、ログ記録が可能なサービスのリストとそれぞれのログファイルに関する説明を示します。


表 12-1 サービスとログファイル


サービス

ログファイルの説明

Admin

Administration Server を介した iPlanet Console と Messaging Server (主に複数の CGI プロセス)間の通信に関連するログイベントが記録されます。

SMTP

SMTP アクティビティに関連するログイベントが記録されます。

IMAP

サーバの IMAP4 アクティビティに関連するイベントが記録されます。

POP

サーバの POP3 アクティビティに関連するログイベントが記録されます。

HTTP

サーバの HTTP アクティビティに関連するログイベントが記録されます。

Default

サーバのその他のアクティビティ (コマンドラインユーティリティやその他のプロセスなど)に関連するログイベントが記録されます。


サードパーティ製のツールを使ってログを解析する

iPlanet Messaging Server ではサポートされていないログ解析やレポート生成を行うには、別のツールを利用する必要があります。ログファイルは、テキストエディタや標準のシステムツールで操作できます。

正規表現による構文解析をサポートするスクリプタブルなテキストエディタを利用すると、この章で説明しているような特定の条件に基づくログエントリの検索や抽出を実施できます。さらに、その結果を並べ替えたり、集計や統計を行うこともできます。

UNIX 環境では、UNIX の syslog ファイルを操作するために開発された既存のレポート生成ツールを変更して使用することも可能です。パブリックドメインの syslog 操作ツールを使用する場合は、日付/時刻フォーマットのほか、Messaging Server のログエントリにある syslog エントリにはないfacilitylogLevel の 2 つの特殊コンポーネントの変更が必要な場合があります。


第 2 部 サービスログ (メッセージストアおよび管理サーバ)



ここでは、POP、IMAP、HTTP、Admin、および Default の各サービスに関するログについて説明します (表 12-1 を参照)。

これらのサービスの場合には、iPlanet Console を使ってログの設定と表示ができます。設定内容は、どのイベントを記録するか、何件まで記録するかという点に影響します。これらの設定とその他の特徴を利用して、ログファイルの解析時にログイベントの検索条件を微調整できます。

第 2 部には、以下の項目があります。


ログの特徴

ここでは、メッセージストアおよび管理サービスに関するログの特徴( ログレベル、ログイベントのカテゴリ、ログのファイル名規則、ログファイルのディレクトリ)について説明します。


ログレベル

ログのレベル(優先順位)設定では、ログのアクティビティをどれだけ詳細に行うのか(詳細度)を定義します。レベル (重要度) が高いほど、ログの詳細度は低くなります。優先順位の高いイベントだけがログに記録されるためです。一方、レベルを下げると、ログは詳細なものとなり、より多くのイベントがログファイルに記録されます。

ログレベルは、POP、IMAP、HTTP、Admin、および Default の各サービスごとに個別に設定できます。ログレベルを設定することで、ログイベントを検索するときにフィルタリングが可能になります。表 12-2 に、設定可能なレベルを示します。これらのログレベルは、UNIXの syslog 機構で定義されるレベルのサブセットです。


表 12-2 ストアサービスと管理サービスのログレベル


レベル

説明

Critical

最も詳細度の低いログが作成されます。メールボックスや実行に必要なライブラリにサーバがアクセスできない場合など、サーバに重大な問題や致命的な状態が発生したときにイベントがログに記録されます。

Error

クライアントあるいは別のサーバへの接続に失敗した場合など、エラー状態が発生したときにイベントがログに記録されます。

Warning

サーバがクライアントから送られたデータを解釈できない場合など、警告状態が発生したときにイベントがログに記録されます。

Notice

ユーザがログインに失敗したり、セッションを終了した場合など、通知 (通常の状態における重要なイベント) が発生したときにイベントがログに記録されます。

Informational

ユーザがログオンやログオフを行ったり、あるいはメールボックスを作成したり名前を変更した場合など、重要なアクションが行われたときにイベントがログに記録されます。

Debugging

最も詳細度の高いログファイルが作成されます。デバッグを行う場合に役立ちます。各プロセスあるいはタスク内の個々のステップごとにイベントがログに記録されるため、問題箇所を正確に突き止めることができます。

特定のログレベルを選択すると、そのレベルのイベントおよびそれ以上のレベルの (詳細度の低い) イベントがログに記録されます。デフォルトのログレベルは、Notice に設定されています。


低レベルの (より詳細な) ログを指定するほど、ログファイルがより多くのディスク容量を使用するようになります。そのガイドラインにについては、「ログオプションを定義、設定する」を参照してください。




ログイベントのカテゴリ

サポートされているサービスあるいはプロトコル内で、Messaging Server はイベントが発生する機構すなわち機能上の領域に基づいてログイベントをさらに分類します。ログファイルに記録された各イベントには、そのイベントを生成した機構の名前が記されています。これらのカテゴリは、イベントを検索する際のフィルタリングに利用できます。表 12-3 に、Messaging Server がログ処理用に認識するカテゴリのリストを示します。


表 12-3 ログイベントの発生場所のカテゴリ 


機構

説明

General

プロトコルあるいはサービスに関連するアクション全般。

LDAP

LDAP ディレクトリデータベースにアクセスする Messaging Server に関連するアクション。

Network

ネットワークの接続に関するアクション (ソケットエラーなど)。

Account

ユーザのアカウントに関連するアクション (ユーザのログインなど)。

Protocol

プロトコル固有のコマンドに関連するプロトコルレベルのアクション (POP、IMAP、HTTP 機能によって返されるエラーなど)。

Stats

サーバの統計データ収集に関連するアクション。

Store

メッセージストアに関連する低レベルのアクション (読み込み/書き込みエラーなど)。

ログを検索する際のフィルタリングにカテゴリを使用する例については、「ログを検索、表示する」を参照してください。


メッセージストアおよび管理に関連するログファイルの名前

POP、IMAP、HTTP、Admin、および Default サービスのログファイルには、同一のネーミング規則が適用されます。各ログファイルのファイル名は、以下の形式に従います。

service.sequenceNum.timeStamp

表 12-4 に、メッセージストアに関連するログファイルのネーミング規則を示します。


表 12-4 ストアおよび管理に関連するログファイルのネーミング規則


構成要素

定義

service

ログの対象であるサービス : POP、IMAP、HTTP、Admin、Default

sequenceNum

ログファイルディレクトリ内に作成されたログファイルの順番を表す整数値。新しいログファイルほど、この値が大きくなります。このシーケンスの値がロールオーバーすることはなく、値はサーバのインストール時に始まり、そのサーバを使用している限り常に増え続けます。

timeStamp

ファイルが作成された日付と時刻を表す整数値。この値は UNIX 標準の時刻形式で表されます。つまり、1970 年 1 月 1 日零時以降の秒数です。

たとえば、imap.63.915107696 という名前のログファイルは、IMAP ログファイルのディレクトリで 63 番目に作成されたログファイルであり、作成日および作成時刻が 1998 年 12 月 31 日 12:34:56 PM であることを表します。

拡張可能なシーケンス番号とタイムスタンプを組み合わせることによって、解析するファイルのローテーション、期間、および選択における柔軟性が増します。詳細については、「ログオプションを定義、設定する」を参照してください。


ログファイルのディレクトリ

ログされる各サービスごとにディレクトリが 1 つ割り当てられ、ログファイルはそこに保存されます。IMAP ログファイルや POP ログファイルなど、各サービスのログファイルは、それぞれのディレクトリ内に一緒に保存されます。各ディレクトリの場所、そのディレクトリ内に保存できるログファイルの数、ファイルの最大サイズは、設定できます。

すべてのログファイルを保存するのに十分な容量があることを確認してください。ログレベルが低いほど、(詳細度が高くなるほど) ログファイルのサイズは大きくなり易くなります。

すべてのログファイルディレクトリのバックアップが行われ、ディレクトリが過負荷状態にならないように、ログレベル、ログローテーション、ログ有効期間、およびサーバのバックアップポリシーを正しく設定することが重要です。詳細については、「ログオプションを定義、設定する」を参照してください。


ログファイルのフォーマット

Messaging Server によって作成されたメッセージストアログファイルと管理サービスログファイルのコンテンツフォーマットはすべて同じです。ログファイルは、複数のテキスト行から構成されており、各行にイベントが 1 つ記述されています。サポートされている各サービスに対するすべてのイベントは、通常以下のようなフォーマットで記述されています。

日付時刻 ホスト名 プロセス名[pid]: カテゴリ ログレベル: イベントメッセージ

表 12-5 に、ログファイルの構成要素を示します。このイベント記述フォーマットは、日付/時刻フォーマットが異なることと、さらに別の 2 つの構成要素(カテゴリログレベル)があることを除き、UNIX の syslog 機構で定義されているものと同じです。


表 12-5 ストアログファイルと管理ログファイルの構成要素


構成要素

定義

日付時刻

イベントが記録された日付および時刻。dd/mm/yyyy hh:mm:ss の形式で表記されます。タイムゾーンフィールドは GMT を基準とした +/-hhmm の形式で表記されます。以下に例を示します。02/Jan/1999:13:08:21 -0700

ホスト名

サーバが実行されているホストマシンの名前。以下に例を示します。showshoe

注意 : ホストに複数の Messaging Server インスタンスがある場合には、プロセス ID (pid) を使ってログイベントのインスタンスを区別できます。

プロセス名

イベントを生成したプロセスの名前。例 : cgi_store

pid

イベントを生成したプロセスのプロセス ID。例 : 18753

カテゴリ

イベントが属するカテゴリ。例 : General表 12-3を参照)

ログレベル

イベントのログレベル。例 : Notice表 12-2を参照)

イベントメッセージ

イベント固有のメッセージ (任意の長さのメッセージ)。例 : Log created (894305624)

以下に、iPlanet Console を使って表示した 3 つのログイベントの例を示します。

02/May/1998:17:37:32 -0700 showshoe cgi_store[18753]:
General Notice:
Log created (894155852)

04/May/1998:11:07:44 -0400 xyzmail cgi_service[343]: General Error:
function=getserverhello|port=2500|error=failed to connect

03/Dec/1998:06:54:32 +0200 SiroePost imapd[232]: Account Notice:
close [127.0.0.1] [unauthenticated] 1998/12/3 6:54:32
0:00:00 0 115 0

IMAP および POP のイベントエントリの末尾は、3 つの数値である場合があります。上の例では「0 115 0」となっています。最初の数値はクライアントによって送信されたバイト数、2 番目の数値はサーバによって送信されたバイト数、3 番目の数値は選択されたメールボックスの数 (POP の場合は常に 1) を表しています。

[ログビューア]ウィンドウにログファイルを表示する場合は、ログレベルやカテゴリ、あるいはプロセス ID などのイベント固有の構成要素を検索し、表示するイベントを制限できます。詳細については、「ログを検索、表示する」を参照してください。

各ログエントリのイベントメッセージは、ログに記録されるイベントのタイプに特有のフォーマットで表記されます。つまり、各サービスごとに、イベントメッセージに含まれるコンテンツが定義されます。ほとんどのイベントメッセージは簡単で明白なものですが、中には複雑なものもあります。


ログオプションを定義、設定する

メッセージストアと管理サービスのログ設定は、管理業務のニーズに合わせて定義できます。ここでは、最適な設定およびポリシーを決定するために役立つ情報、およびそれらの適用方法について説明します。


柔軟性のあるログ構造

ログファイルの名前形式 (サービス.シーケンス番号.タイムスタンプ) は、柔軟性のあるログローテーションとバックアップポリシーの設定に役立ちます。異なるサービスのイベントは、それぞれ別のファイルに記録されるため、問題箇所の素早い検出が可能になります。また、ファイル名中のシーケンス番号は常に増え続け、タイムスタンプは常に固有のものであるため、指定したシーケンス番号の限界に達しても、新しいログファイルが古いログファイルを自動的に上書きしてしまうことはありません。古いログファイルの上書きや削除が行われるのは、ログファイルの保存期間や最大ファイル数、あるいは合計ログ容量など、より柔軟性のある制限がその限界に達したときにだけです。

Messaging Server では、管理やバックアップの作業を簡素化できるように、ログファイルの自動ローテーションがサポートされています。後続のログイベントを記録するために,手作業で記録中のログファイルを回収して新しいログファイルを作成する必要はありません。ディレクトリ内にあるファイルはすべて (記録中のログファイル以外)、サーバを停止させたり、新しいログファイルの開始を手作業で指定することなく、いつでもバックアップを作成できます。

ログポリシーの設定では、各サービスごとに、合計保存容量、最大ログファイル数、個々のファイルサイズ、ログファイルの最長保存期間、ログファイルのローテーション頻度といったオプションを設定できます。


適切なオプションを判断する

複数の制限を設定する必要があることと、それらの中にはログファイルのローテーションや削除を発生させるものがあることを理解しておいてください。最初に限界に達する制限が制御の中心となります。たとえば、ログファイルの最大サイズを 3.5 MB に設定し、新規のログを毎日作成するように設定したとします。しかし、24 時間以内に 3.5 MB 以上のデータが記録される場合は、指定期間内に複数のログファイルが作成されることになります。したがって、最大ログファイル数が 10 個、最長有効期間が 8 日に設定されている場合でも、8 日に達する前に 10 個のファイルが作成され、指定期間まで達しない可能性があります。

以下に、適切なオプションを判断する際に役立つ一般的な設定を示します。これは Messaging Server 管理ログのデフォルトです。

ディレクトリ内の最大ログファイル数 : 10
最大ログファイルサイズ : 2 MB
全ログファイルを対象とする合計最大サイズ : 20 MB
最小空きディスク容量 : 5 MB
ログロールオーバー期間 : 1 日
最長有効期間 : 7 日
ログレベル : Notice

この設定の場合、サーバ管理ログのデータは 1 日あたり 2 MB 記録され、バックアップは毎週作成されます。また、管理ログの保存に割り当てられている合計容量は 25 MB 以上です (ログレベルの詳細度を上げると、この設定では不十分になる可能性があります)。

POP、IMAP、HTTP のログの場合も、同様の設定から始めてみるとよいでしょう。すべてのサービスに上記のデフォルト値と同じ容量のログが必要だとすると、最初にログを保存するために 150 MB のディスク容量が必要になります (ここに示した設定はあくまでも一般例であるため、実際の条件とは異なる場合があります)。


ログオプションを設定する

メッセージストアのログ設定を制御するオプションは、iPlanet Console あるいはコマンドラインを使って指定できます。

これらのオプションの最適な設定は、ログデータが集積される頻度によって異なります。1 MB の保存領域には、約 4,000〜10,000 件のログエントリを記録できます。適度に使用されているサーバでは、ログレベルが低い場合 (Notice など)、1 週間あたり数百メガバイトのログデータが記録されます。以下の設定方法を参考にしてください。

ログ情報は、サーバによるログファイルではなく、syslog 機構に送るよう選択することもできます。ログ情報を syslog に送るには、syslogfacility オプションを以下のように設定します。

configutil -o logfile. サービス.syslogfacility -v

この場合の サービス には adminpopimap、あるいは http を、 には usermaildaemonlocal0local7、または none を指定します。

値が設定されると、設定値に対応する syslog 機構のログにメッセージが記録され、その他のすべてのログファイルサービスオプションが無視されます。オプションが設定されていないか、あるいは値が none の場合には、Messaging Server のログファイルが使用されます。

コンソール- iPlanet Console を使ってログオプションを設定するには、以下の手順に従います。

  1. ログファイルオプションを設定する Messaging Server を開きます。

  2. [環境設定] タブをクリックし、左側のパネルで [ログファイル] フォルダを開き、サービス (IMAP、HTTP、Admin など) のログファイルを選択します。

  3. [詳細レベル] ドロップダウンリストからログレベルを選択します。

  4. [ログファイルのディレクトリパス] フィールドに、ログファイルの保存先となるディレクトリの名前を入力します。

  5. [各ログのファイルサイズ] フィールドに、ログファイルの最大サイズを入力します。

  6. [新規ログエントリの作成] フィールドに、ログローテーションスケジュールの値を入力します。

  7. [ディレクトリ当たりのログ数] および [ログが次の日付よりも古い場合] フィールドに、最大ログファイル数と期限を示す値を入力し、バックアップスケジュールとの兼ね合いを調整します。

  8. [ログサイズの合計が次の値を超えたとき] フィールドに、合計保存領域の上限を入力します。

  9. [残りディスク容量が次の値以下になった場合] フィールドに、確保しておく空きディスク容量の最小値を入力します。

コマンドライン- コマンドラインでログオプションを設定するには、以下の例のように configutil コマンドを使用します。

ログレベルを設定するには、以下の手順に従います。

configutil -o logfile.サービス.loglevel -v レベル

サービス」には、adminpopimap、または http のいずれかを、「レベル」には、NologCriticalErrorWarningNotice, Information、または、 Debug のいずれかを指定します。

ログファイルのディレクトリパスを指定するには :

configutil -o logfile.サービス.logdir -v ディレクトリパス

各ログの最大ファイル サイズを指定するには、以下の手順に従います。

configutil -o logfile.サービス.maxlogfilesize -v サイズ

サイズ」には、バイト数を指定します。

ログのローテーションスケジュールを指定するには、以下の手順に従います。

configutil -o logfile.サービス.rollovertime -v 数値

数値」には秒数を指定します。

ディレクトリ内の最大ログファイル数を指定するには、以下の手順に従います。

configutil -o logfile.サービス.maxlogfiles -v 数値

保存容量の限度を指定するには、以下の手順に従います。

configutil -o logfile.サービス.maxlogsize -v 数値

数値」にはバイト数を指定します。

確保しておく空きディスク容量の最小値を指定するには、以下の手順に従います。

configutil -o logfile.サービス.minfreediskspace -v 数値

数値」にはバイト数を指定します。

ログの存続期間を指定するには、以下の手順に従います。

configutil -o logfile.サービス.expirytime -v 数値

数値」には秒数を指定します。


ログを検索、表示する

iPlanet Console には、メッセージストアおよび管理に関するログデータを表示するための基本的なインターフェースがあります。個々のログファイルを選択したり、それらのファイル内で柔軟にフィルタリングを行って、ログエントリを検索することができます。

ログファイルは、サービスごとに分かれており、それぞれ作成順に表示されます。検索するログファイルを選択し、検索パラメータを指定して個々のイベントの検索対象を限定できます。


検索パラメータ

以下に、表示するログデータを特定するための検索パラメータを示します。

注意 : 検索では、大文字と小文字が区別されます。

ログを表示する際にログレベルと機能を組み合せた検索を行う場合は、以下のオプションを含めることができます。


検索を指定し、結果を表示する

指定したサービスに固有のログイベントを検索するには、以下の手順に従います。

  1. iPlanet Console で、ログファイルの対象となる Messaging Server を開きます。

  2. 以下のいずれかの方法で、指定したサービスログの [コンテンツ] タブを表示します。

    • [タスク] タブをクリックし、[<サービス> ログの表示] をクリックします。この場合の<サービス> は、ログに記録されているサービスの名前 (IMAP や Admin など) です。

    • [環境設定] タブをクリックし、左側のパネルで該当サービス (IMAP や Admin など) のログファイルフォルダを選択します。右側のパネルで [コンテンツ] タブをクリックします。

  3. ログされたサービスの [コンテンツ] タブが表示されます。

  4. [ログファイル名] フィールドで、調べたいログファイルを選択します。

  5. [選択したログの表示] ボタンをクリックし、[ログビューア]ウィンドウを開きます。

  6. [ログビューア]ウィンドウで、検索パラメータを指定します (前述の「検索パラメータ」を参照)。

  7. [更新] をクリックして検索を実行し、[ログエントリ] フィールドに結果を表示します。


第 3 部 サービスログ (MTA)

MTA には、各メッセージがキューに入ったりキューから取り出されるときに、それらのメッセージをログに記録する機能が備わっています。チャネルごとにログに記録することも、またはすべてのチャネルにおけるメッセージアクティビティをログに記録することもできます。初期設定では、すべてのチャネルでログが無効になっています。

ログ機能を有効にすると、メッセージが MTA チャネルを通過するたびに mail.log* ファイルにエントリが追加されます。これらのログエントリは、MTA (あるいは特定チャネル) を通過するメッセージの件数を調べたり、メッセージが送信あるいは配信されたかどうか、いつ送信あるいは配信されたのかなどを調べるときに役に立ちます。

特定の MTA チャネルを通過したメッセージの件数について統計を得るだけであれば、該当する MTA チャネルについてのみ logging チャネルキーワードを有効にするとよいでしょう。ほとんどのサイトでは、すべての MTA チャネルについてログ機能を有効にしています。特に、問題の原因を追求する際には、問題分析の最初のステップとして特定のチャネルにメッセージが送られているかどうかを調べることができるように、すべてのチャネルについてのログが有効になっていると便利です。


注意

ログ機能が有効になっている場合は、mail.log が大きくなりつづけるため、そのままにしておくと使用可能なディスク容量がなくなってしまいます。このファイルのサイズを監視し、定期的に不要なコンテンツを削除するようにしてください。ファイル自体を削除することもできます。その場合は、必要に応じて新しいファイルが作成されます。




MTA のログ機能を有効にする

目的のチャネルについてログ機能を有効にするには、以下の例のように、MTA 設定ファイルのチャネル定義に logging キーワードを追加します。

チャネル名 キーワード1 キーワード2 logging

すべてのチャネルについてメッセージアクティビティをログファイルに記録する場合には、defaults チャネルブロックを MTA 設定ファイルのチャネルブロックセクションの冒頭に追加します。例 :

defaults logging

l defragment charset7 us-ascii charset8 iso-8859-01
siroe.com

defaults チャネルは、MTA 設定ファイルの最初の空白行のすぐ後にあるはずです。defaults logging 行の前後には、それぞれ空白行が必要です。

メッセージがキューに入ったりキューから取り出されるたびに、そのメッセージに関するログが記録されます。ログエントリはすべて、MTA ログディレクトリ内の mail.log_current ファイルに記録されます(MTA ログディレクトリ : msg-インスタンス/log/imta/mail.log_current)。

毎晩深夜に実行されるメッセージリターンジョブでは、まず既存の mail.log_yesterdaymail.log というログファイルに追加されます。その後、現在の mail.log_current ファイルが mail.log_yesterday というファイル名に変更され、新規の mail.log_current ファイルが作成されます。connection.log* ファイルについても同様の処理が行われます。

LOG_MESSAGES_SYSLOG オプションを設定して、MTA ログメッセージを syslog に送ることもできます。


その他の MTA ログオプションを指定する

ログ機能を有効にしたときに与えられる基本的な設定のほかにも、MTA オプションファイルでさまざまなMTA オプション LOG_* を設定することにより、オプションの情報フィールドを含めることができます。オプションファイルの詳細については、『Messaging Server リファレンスマニュアル』を参照してください。


MTA ログエントリのフォーマット

MTA ログファイルは、ASCII テキストとして記述されます。デフォルトでは、図 12-1 に示すように、各ログファイルエントリに 8 個または 9 個のフィールドが含まれます。

図 12-1 MTA ログエントリのフォーマット

19-Jan-1998 19:16:57.64 l tcp_local E 1 adam@sesta.com
 rfc822;marlowe@siroe.com marlowe@siroe.com


ログエントリには以下の情報が含まれています。

  1. エントリが記録された日付および時刻。

  2. ソースチャネルのチャネル名 (上記の例では l)。

  3. 宛先チャネルのチャネル名 (上記の例では tcp_local)。SMTP チャネルの場合は、LOG_CONNECTION が有効になっているとき、プラス記号「+」が SMTP サーバの受信、マイナス記号「-」が SMTP クライアント経由の送信を表します。

  4. エントリのタイプ(上記の例では E)。表 12-6を参照。

  5. メッセージのサイズ(上記の例では l)。デフォルトでは、キロバイト単位に設定されていますが、MTA オプションファイルで BLOCK_SIZE キーワードを使って単位を変更することもできます。

  6. エンベロープ From: アドレス(上記の例では adam@sesta.com)。通知メッセージのように、エンベロープの From: アドレスが空白のメッセージの場合、このフィールドは空白になります。

  7. オリジナルのエンベロープ To: アドレス (上記の例では marlowe@siroe.com)。

  8. アクティブな (現在の) エンベロープ To: アドレス (上記の例では marlowe@siroe.com)。

  9. 配信ステータス (SMTP チャネルのみ)。

表 12-6 に、ログエントリの各コードを示します。

表 12-6 ログエントリのコード


エントリ

説明

D

キューからの取り出しに成功

DA

SASL (認証) に関し、キューからの取り出しに成功

DS

TLS (セキュリティ) に関し、キューからの取り出しに成功

DSA

TLS および SASL (セキュリティと認証) に関し、キューからの取り出しに成功

E

キューに送信

EA

SASL (認証) に関し、キューへの送信に成功

ES

TLS (セキュリティ) に関し、キューへの送信に成功

ESA

TLS および SASL (セキュリティと認証) に関し、キューへの送信に成功

J

キューへの送信試行で拒否 (スレーブチャネルプログラムによる拒否)

Q

キューからの取り出しで一時的な失敗

R

キューからの取り出し試行で受信者アドレスの拒否 (マスターチャネルプログラムによる拒否)、または失敗/バウンスメッセージの生成

W

未配信メッセージに関する警告メッセージの生成

Z

数人の受信者に対して送信できたが、この受信者に対しては一時的に失敗 (全受信者宛のオリジナルのメッセージファイルはキューから取り出され、失敗した受信者宛の新しいメッセージがキューに入ります)

SMTP チャネルの LOG_CONNECTION + / - エントリ

C

接続終了

O

接続開始

X

接続拒否

Y

接続が確立される前、試行に失敗

I

ETRN コマンド受信

LOG_CONNECTIONLOG_FILENAMELOG_MESSAGE_IDLOG_NOTARYLOG_PROCESS、および LOG_USERNAME がすべて有効になっている場合、フォーマットは、図 12-2 のようになります。以下の例ではログエントリ行は改行されて表示されていますが、実際のログエントリは 1 行に記述されます。

図 12-2 その他のフィールドを含むログフォーマット

19-Jan-1998 13:13:27.10 HOSTA 2e2d.2.1 tcp_local l
 E 1 service@siroe.com rfc822;adam@sesta.com
 adam 276 /imta/queue/l/ZZ01IWFY9ELGWM00094D.00
 <01IWFVYLGTS499EC9Y@siroe.com> inetmail
 siroe.com (siroe.com [192.160.253.66])


前述の説明に含まれていないフィールドは、以下のとおりです。

  1. チャネルプロセスを実行しているノードの名前 (上記の例では HOSTA)。

  2. プロセス ID (16 進数)、およびその後に続くドット文字 (ドット) とカウント。マルチスレッドのチャネルエントリ (tcp_* チャネルエントリなど) の場合は、プロセス ID とカウントの間にスレッド ID が挿入されます。上記の例では 2e2d.2.1 がプロセス ID です。

  3. メッセージの NOTARY (配信受け取りリクエスト) フラグ。整数値で表記 (上記の例では 276)。

  4. MTA キュー領域内のファイル名 (上記の例では /imta/queue/l/ZZ01IWFY9ELGWM00094D.00)

  5. メッセージ ID (上記の例では <01IWFVYLGTS499EC9Y@siroe.com>)

  6. 実行プロセスの名前 (上記の例では inetmail)。UNIX における SMTP サーバなどのディスパッチャプロセスの場合は、通常 inetmail (SASL が使用されない場合)。

  7. 接続情報 (上記の例では siroe.com (siroe.com [192.160.253.66])。接続情報は、送信システム、チャネル名(送信側システムが HELO/EHLO 行に示す名前など)、あるいは (他の種類のチャネルに対する) チャネルの正式なホスト名から構成されています。TCP/IP チャネルの場合は、送信側システムの正式な名前です。ident* チャネルキーワードを使用して、DNS 逆参照により報告されるシンボリック名や IP アドレスを括弧内に示すこともできます (「IDENT 検索」を参照)。この例では、DNS から見つかった名前と IP アドレスの両方を表示するように選択するキーワードの 1 つ (たとえば、デフォルトの identnone キーワード) が使用されていると仮定しています。


MTA ログファイルを管理する

毎晩深夜に実行されるメッセージリターンジョブでは、まず既存の mail.log_yesterdaymail.log という集積ログファイルに追加されます。その後、現在の mail.log_current ファイルの名前が mail.log_yesterday に変更され、新しい mail.log_current ファイルが作成されます。また、connection.log* ファイルについても同様の処理が行われます。

MTA は、自動的にロールオーバーを行って現在のファイルを維持しますが、エントリが累積される mail.log ファイルでは、ファイルのバックアップ、切り捨て、ファイルの削除などのタスクのポリシーを決めて管理する必要があります。

ログファイルの管理方法を考えるときには、MTA の定期的なリターンジョブが、サイトから提供された サーバ-インスタンス/imta/bin/daily_cleanup プロシージャを実行する (該当プロシージャがある場合) ことに注意してください。したがって、サイトによっては、古い mail.log ファイルの名前を 1 週間に 1 回 (または 1 月に 1 回) 変更するなど、独自のクリーンアッププロシージャを適用することがあります。


MTA メッセージログの例

MTA メッセージファイルにログされるフィールドのフォーマットおよびフィールドのリストは、設定したオプションによって異なります。ここでは、いくつかの典型的な例を見ながらログエントリについて解説します。その他のオプションのフィールドについては、「その他の MTA ログオプションを指定する」を参照してください。


ここでは、ログファイルエントリの例が複数行にわたって表示されていることがありますが、実際のログファイルエントリは常に 1 行に記述されます。



ログファイルを見直す際、システムでは通常一度に多くのメッセージが処理されていることに留意してください。したがって、特定のメッセージに関連するエントリは、同時に処理された他のメッセージに関連するエントリの中にあります。基本的なログ情報を見ることにより、何件のメッセージが MTA を通過したのかを把握できます。

同じのメッセージに関する特定のエントリをそのメッセージの同じ受信者に関連付けたい場合は、LOG_MESSAGE_ID を有効にします。MTA キュー領域内の特定のメッセージと特定のファイルを関連付けたり、キューからの取り出しに成功していない特定のメッセージの配信試行が何度行われたかをエントリを見て調べたりする場合には、LOG_FILENAME を有効にします。また、SMTP メッセージ (TCP/IP チャネルを経由して処理されるメッセージ) の場合は、リモートシステムとの TCP 接続とメッセージ送信を関連付けるには、LOG_PROCESS と何らかのレベルの LOG_CONNECTION を有効にします。

図 12-3 に、ローカルユーザが TCP/IP チャネルからインターネットなどにメッセージを送信した場合の基本的なログエントリの例を示します。この例では、LOG_CONNECTION が有効になっています。(1) と (2) の行は 1 つのエントリで、実際のログファイルでは 1 行に記述されます。同様に、(3) 〜 (7) の行も 1 つのエントリで、実際のログファイルでは 1 行に記述されます。

図 12-3 ログ : ローカルユーザが送信メッセージを送った場合

19-Jan-1998 19:16:57.64 l tcp_local E 1 (1)
 adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com (2)

19-Jan-1998 19:17:01.16 tcp_local D 1 (3)
 adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com (4)
 dns;thor.siroe.com
 (TCP|206.184.139.12|2788|192.160.253.66|25) (5)
 (THOR.SIROE.COM -- Server ESMTP [iMS V5.0 #8694]) (6)
 smtp;250 2.1.5 marlowe@siroe.com and options OK. (7)


  1. この行は、ブロックメッセージ (1) をチャネル l から tcp_local チャネルのキューに入れた (E) ときの日付と時刻を示します。

  2. この部分は、実際にはログファイルの行 (1) の後に続く部分です。ここでは、印刷上の理由から改行されています。エンベロープ From: アドレス (adam@sesta.com)、およびエンベロープ To: アドレスの元のバージョンと現在のバージョン (marlowe@siroe.com) を示しています。

  3. ブロックメッセージ (1) を tcp_local チャネルのキューから取り出した (D) ときの日付と時刻を示します。つまり、tcp_local チャネルからリモートの SMTP サーバにメッセージが送信されたことを示します。

  4. エンベロープ From: アドレス、元のエンベロープ To: アドレス、および現在のエンベロープ To: アドレスを示しています。

  5. 接続先のシステムは DNS で thor.siroe.com という名前であること、ローカルの送信システムの IP アドレスは 206.184.139.12 で、ポート 2788 から送信していること、およびリモート送信先システムの IP アドレスは 192.160.253.66 で、その接続ポートは 25 であることを示します。

  6. リモート SMTP サーバの SMTP バナー行を示します。

  7. このアドレスに対して返された SMTP ステータスコードを示しています。250 は 基本的な SMTP 成功コードです。また、このリモート SMTP サーバは拡張 SMTP ステータスコードとその他のテキストを返しています。

図 12-4 に示すログエントリは 図 12-3 の例に似ていますが、LOG_FILENAME=1 および LOG_MESSAGE_ID=1 を設定したことによって、その他の情報 (ファイル名とメッセージ ID) も示されています。(1) と (2) を参照してください。特に、メッセージ ID は、エントリとメッセージの関連を示すために使用されます。

図 12-4 ログ : オプションのログフィールドを含めた場合

19-Jan-1998 19:16:57.64 l tcp_local E 1
 adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com
 /imta/queue/tcp_local/ZZ01ISKLSKLZLI90N15M.00
   <01ISKLSKC2QC90N15M@sesta.com> (1)

19-Jan-1998 19:17:01.16 tcp_local D 1
 adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com
 /imta/queue/tcp_local/Z01ISKLSKLZLI90N15M.00
   <01ISKLSKC2QC90N15M@sesta.com> (2)
 dns;thor.siroe.com (TCP|206.184.139.12|2788|192.160.253.66|25)
 (THOR.SIROE.COM -- Server ESMTP [iMS V5.0 #8694])
 smtp;250 2.1.5 marlowe@siroe.com and options OK.


図 12-5 は、LOG_FILENAME=1LOG_MESSAGE_ID=1、およびLOG_CONNECTION=1 を有効にして、複数の受信者にメッセージを送信した例を示しています。この場合、ユーザ adam@sesta.com が MTA メーリングリスト test-list@sesta.com に送信したメッセージは、bob@sesta.comcarol@varrius.com、および david@varrius.com に展開されています。各受信者の元のエンベロープ To: アドレスは、test-list@sesta.com ですが、現在のエンベロープ To: アドレスは、それぞれの受信者のアドレスになっていることに注意してください。2 つのファイル (チャネル l と送信チャネル tcp_local) がありますが、メッセージ ID は同一です。

図 12-5 ログ : リスト宛に送信した場合

19-Jan-1998 20:01:44.10 l l E 1
 adam@sesta.com rfc822;test-list@sesta.com bob
 imta/queue/l/ZZ01ISKND3DE1K90N15M.00
 <01ISKND2H8MS90N15M@sesta.com>

19-Jan-1998 20:01:44.81 l tcp_local E 1
 adam@sesta.com rfc822;test-list@sesta.com carol@varrius.com
 imta/queue/tcp_local/ZZ01ISKND2WS1I90N15M.00 
 <01ISKND2H8MS90N15M@sesta.com>

19-Jan-1998 20:01:44.81 l tcp_local E 1
 adam@sesta.com rfc822;test-list@sesta.com david@varrius.com
 imta/queue/tcp_local/ZZ01ISKND2WS1I90N15M.00
 <01ISKND2H8MS90N15M@sesta.com>

19-Jan-1998 20:01:50.69 l D 1
 adam@sesta.com rfc822;test-list@sesta.com bob
 imta/queue/l/ZZ01ISKND3DE1K90N15M.00
 <01ISKND2H8MS90N15M@sesta.com>

19-Jan-1998 20:01:57.36 tcp_local D 1
 adam@sesta.com rfc822;test-list@sesta.com carol@varrius.com
 imta/queue/tcp_local/ZZ01ISKND2WS1I90N15M.00
 <01ISKND2H8MS90N15M@sesta.com>
 dns;gw.varrius.com (TCP|206.184.139.12|2788|192.160.253.66|25)
 (gw.varrius.com -- SMTP Sendmail)
 smtp;250 OK.

19-Jan-1998 20:02:06.14 tcp_local D 1
 adam@sesta.com rfc822;test-list@sesta.com david@varrius.com
 imta/queue/tcp_local/ZZ01ISKND2WS1I90N15M.00
 <01ISKND2H8MS90N15M@sesta.com>
 dns;gw.varrius.com (TCP|206.184.139.12|2788|192.160.253.66|25)
 (gw.varrius.com -- SMTP Sendmail)
 smtp;250 OK.


図 12-6 は、存在しないドメイン(very.bogus.com) 宛にメッセージを送信しようとした場合の例です。つまり、MTA の書き換え規則によって「存在しない」と判断されないドメイン名で、かつ送信 TCP/IP チャネルに対して一致するドメイン名を使った場合です。この例では、LOG_FILENAME=1LOG_MESSAGE_ID=1 という MTA オプションが設定されていると仮定しています。

TCP/IP チャネルが DNS のドメイン名を調べると、DNS はそのような名前は存在しないという旨のエラーを返します。(5) の拒否エントリ (R) のように、DNS は (6) エラーを返し、ドメイン名が不正であることを示します。(6)

メッセージが発行された後でアドレスが拒否されたため、MTA はオリジナルの送信者宛にバウンスメッセージを生成します。MTA は、この新しい拒否メッセージをキューに入れ、オリジナルの送信者 (1) に送り、オリジナルの送信メッセージを削除する前にそのコピーを postmaster (4) に送信します ((5) の R エントリ)。

例の (2) および (8) に示すように、バウンスメッセージなどの通知メッセージのエンベロープ From: アドレスは空白であるため、エンベロープ From: フィールドも空白になります。MTA で生成されたバウンスメッセージが最初のキューに入れられることにより、オリジナルメッセージのメッセージ ID の後に新規通知メッセージのメッセージ ID が示されます (3)。(この情報は、MTA が常に利用できるわけではありません。この情報がログ用に得られる場合には、失敗した送信メッセージに対応するログエントリを通知メッセージに関連付けることができます。) この通知メッセージは、プロセスチャネルのキューに入れられた後、適切な宛先チャネルのキューに送られます (7)。

図 12-6 ログ : 存在しないドメインに送信しようとした場合

19-JAN-1998 20:49:04 l tcp_local E 1
 adam@sesta.com rfc822;user@very.bogus.com user@very.bogus.com
 imta/queue/tcp_local/ZZ01ISKP0S0LVQ94DU0K.00
 <01ISKP0RYMAS94DU0K@SESTA.COM>

19-JAN-1998 20:49:33 tcp_local process E 1 (1)
 rfc822;adam@sesta.com adam@sesta.com (2)
 imta/queue/process/ZZ01ISKP0S0LVQ94DTZB.00
 <01ISKP22MW8894DTAS@SESTA.COM>,<01ISKP0RYMAS94DU0K@SESTA.COM> (3)

19-JAN-1998 20:49:33 tcp_local process E 1 (4)
 rfc822;postmaster@sesta.com postmaster@sesta.com
 imta/queue/process/ZZ01ISKP0S0LVQ94DTZB.00
 <01ISKP22MW8894DTAS@SESTA.COM>,<01ISKP0RYMAS94DU0K@SESTA.COM>

19-JAN-1998 20:50:07 tcp_local R 1 (5)
 adam@sesta.com rfc822;user@very.bogus.com user@very.bogus.com
 imta/queue/tcp_local/ZZ01ISKP0S0LVQ94DU0K.00
 <01ISKP0RYMAS94DU0K@SESTA.COM>
 Illegal host/domain name found (6)

19-JAN-1998 20:50:08 process l E 3 (7)
 rfc822;adam@sesta.com adam (8)
 imta/queue/l/ZZ01ISKP23BUQS94DTYL.00
 <01ISKP22MW8894DTAS@SESTA.COM>

19-JAN-1998 20:50:08 process l E 3
 rfc822;postmaster@sesta.com postmaster
 imta/queue/l/ZZ01ISKP23BUQS94DTYL.00
 <01ISKP22MW8894DTAS@SESTA.COM>

19-JAN-1998 20:50:12 l D 3
 rfc822;adam@sesta.com adam
 imta/queue/l/ZZ01ISKP23BUQS94DTYL.00
 <01ISKP22MW8894DTAS@SESTA.COM>

19-JAN-1998 20:50:12 l D 3
 rfc822;postmaster@sesta.com postmaster
 imta/queue/l/ZZ01ISKP23BUQS94DTYL.00
 <01ISKP22MW8894DTAS@SIROE.COM>


図 12-7 は、メッセージがリモートシステムの不正アドレス宛に送信された場合の例を示しています。この例では、LOG_FILENAME=1LOG_MESSAGE_ID=1 という MTA オプション設定、および LOG_BANNER=1LOG_TRANSPORTINFO=1 というチャネル オプション設定を使用していると仮定しています。(1) の拒否エントリ (R) を見てください。図 12-6 の拒否エントリとは異なり、この拒否エントリにはリモートシステムとの接続が示されています。また、リモート SMTP サーバが発行した SMTP エラーコードも示されています (2)、(3)。(2) に示されている情報は、LOG_BANNER=1LOG_TRANSPORTINFO=1 というチャネル オプション設定によるものです。

図 12-7 ログ : 存在しないリモート ユーザ宛に送信した場合

20-JAN-1998 13:11:05 l tcp_local E 1
 adam@sesta.com rfc822;nonesuch@siroe.com nonesuch@siroe.com
 imta/queue/tcp_local/ZZ01ISLNBB1JOE94DUWH.00
 <01ISLNBAWV3094DUWH@sesta.com>

20-JAN-1998 13:11:08 tcp_local process E 1
 rfc822;adam@sesta.com adam@sesta.com
 imta/queue/process/ZZ01ISLNBB1JOE94DSGB.00
 <01ISLNBFKIDS94DUJ8@sesta.com>,<01ISLNBAWV3094DUWH@sesta.com>

20-JAN-1998 13:11:08 tcp_local process E 1
 rfc822;postmaster@sesta.com postmaster@sesta.com
 imta/queue/process/ZZ01ISLNBB1JOE94DSGB.00
 <01ISLNBFKIDS94DUJ8@sesta.com>,<01ISLNBAWV3094DUWH@sesta.com>

20-JAN-1998 13:11:11 tcp_local R 1  (1)
 adam@sesta.com rfc822;nonesuch@siroe.com nonesuch@siroe.com
 imta/queue/tcp_local/ZZ01ISLNBB1JOE94DUWH.00 
 <01ISLNBAWV3094DUWH@sesta.com>
 dns;thor.siroe.com
 (TCP|206.184.139.12|2788|192.160.253.66|25)         (2)
 (THOR.SIROE.COM -- Server ESMTP [iMS V5.0 #8694])
 smtp; 553 unknown or illegal user: nonesuch@siroe.com  (3)

20-JAN-1998 13:11:12 process l E 3
 rfc822;adam@sesta.com adam
 imta/queue/l/ZZ01ISLNBGND1094DQDP.00
 <01ISLNBFKIDS94DUJ8@sesta.com>

20-JAN-1998 13:11:12 process l E 3
 rfc822;postmaster@sesta.com postmaster
 imta/queue/l/ZZ01ISLNBGND1094DQDP.00
 <01ISLNBFKIDS94DUJ8@sesta.com>

20-JAN-1998 13:11:13 l D 3
 rfc822;adam@sesta.com adam@sesta.com
 imta/queue/l/ZZ01ISLNBGND1094DQDP.00
 <01ISLNBFKIDS94DUJ8@sesta.com>

20-JAN-1998 13:11:13 l D 3
 rfc822;postmaster@sesta.com postmaster@sesta.com
 imta/queue/l/ZZ01ISLNBGND1094DQDP.00
 <01ISLNBFKIDS94DUJ8@sesta.com>


図 12-8 は、MTA がリモート側のメッセージ送信試行を拒否した場合のログファイルエントリを示しています。  この例では、LOG_* オプションが有効になっていないものと仮定しているため、ログエントリには基本的なフィールドしか記述されていません。LOG_CONNECTION オプションを有効にすると、J エントリなどに他の情報フィールドが追加されます。この例は、以下の ORIG_SEND_ACCESS マッピングを使って SMTP リレーブロッキング (「SMTP リレーブロッキングを設定する」 を参照) が設定された MTA に対するものです。

ORIG_SEND_ACCESS

! ...numerous entries omitted...
!
tcp_local|*|tcp_local|* $NRelaying$ not$ permitted

alan@very.bogus.com は内部アドレスではありません。したがって、リモートユーザharold@varrius.com が MTA システムを介したリレーを利用してメッセージをリモートユーザ alan@very.bogus.com に送信しようとしても拒否されます。

図 12-8 ログ : リモート側のメッセージ送信試行が拒否された場合

28-May-1998 12:02:23 tcp_local J 0     (1)
 harold@varrius.com rfc822; alan@very.bogus.com       (2)
 550 5.7.1 Relaying not permitted: alan@very.bogus.com (3)


  1. このログは、MTA がリモート側のメッセージ送信を拒否したときの日付と時刻を示します。拒否は J レコードで表されています。MTA チャネルのメッセージ送信が拒否されたことは 図 12-6 および 図 12-7 に示されているように、R レコードで表されます。

  2. 試行されたエンベロープ From: アドレス および To: アドレスが示されています。この場合、オリジナルの To: 情報がなかったため、そのフィールドは空白になっています。

  3. このエントリには、MTA がリモート (送信者) 側宛に発行した SMTP エラーメッセージが含まれています。

図 12-9 に、一回目の試行でメッセージを配信できなかったために、MTA が何度も配信試行を行う場合のログファイル エントリの例を示します。この例では、LOG_FILENAME=1 および LOG_MESSAGE_ID=1 オプションが設定されているものと仮定しています。

図 12-9 ログ : 複数回の配信試行が行われた場合

15-Jan-1998 10:31:05.18 tcp_internal tcp_local E 3 (1)
 adam@hosta.sesta.com rfc822;user@some.org user@some.org
 imta/queue/tcp_local/ZZ01IS3D2ZP7FQ9UN54R.00 
 <01IRUD7SVA3Q9UN2D4@sesta.com>

15-Jan-1998 10:31:10.37 tcp_local Q 3 (2)
 adam@hosta.sesta.com rfc822;user@some.org user@some.org
 imta/queue/tcp_local/ZZ01IS3D2ZP7FQ9UN54R.00         (3)
 <01IRUD7SVA3Q9UN2D4@sesta.com>
 TCP active open: Failed connect() Error: no route to host (4)

 ...several hours worth of entries...

15-Jan-1998 12:45:39.48 tcp_local Q 3 (5)
 adam@hosta.sesta.com rfc822;user@some.org user@some.org
 imta/queue/tcp_local/ZY01IS3D2ZP7FQ9UN54R.00         (6)
 <01IRUD7SVA3Q9UN2D4@sesta.com>
 TCP active open: Failed connect() Error: no route to host

 ...several hours worth of entries...

15-Jan-1998 16:45:24.72 tcp_local Q 3
 adam@hosta.sesta.com rfc822;user@some.org user@some.org
 imta/queue/tcp_local/ZX01IS67NY4RRK9UN7GP.00         (7)
 <01IRUD7SVA3Q9UN2D4@sesta.com>
 TCP active open: Failed connect() Error: connection refused (8)

 ...several hours worth of entries...

15-Jan-1998 20:45:51.55 tcp_local D 3 (9)
 adam@hosta.sesta.com rfc822;user@some.org user@some.org
 imta/queue/tcp_local/ZX01IS67NY4RRK9UN7GP.00
 <01IRUD7SVA3Q9UN2D4@sesta.com>
 dns;host.some.org (TCP|206.184.139.12|2788|192.1.1.1|25)
 (All set, fire away)
 smtp; 250 Ok


  1. メッセージが tcp_internal チャネルに入ります。これは、おそらく POP クライアントまたは MAP クライアント、あるいは SMTP リレーとして MTA を使った組織内の別のホストからきたものです。MTA は、そのメッセージを出力用の tcp_local チャネルのキューに入れます。

  2. 一回目の配信試行に失敗しています (Q エントリ)。

  3. これが一回目の配信試行であることは ZZ* ファイル名からわかります。

  4. この配信試行は、TCP/IP パッケージがリモート側へのルートを見つけられなかったために失敗しています。図 12-6 とは異なり、DNS は宛先ドメイン名 some.org の存在を否定していません。ホストへのルートがないことを示すエラーにより、送信側と受信側の間にネットワークに関連する問題があったことが示されています。

  5. MTA の定期的なジョブ実行により配信の再試行が行われ、再び失敗しています。

  6. ファイル名が ZY* となり、2 回目の試行であることを示しています。

  7. ファイル名が ZX* となり、3 回目の試行であることを示しています。

  8. 定期的なジョブ実行により配信の再試行が行われ、再び失敗しています。ただし、ここでは、TCP/IP パッケージがリモートの SMTP サーバに接続できなかったことが示されているのではなく、リモートの SMTP サーバが接続を受け入れなかったことが示されています。(リモート側におけるネットワーク問題は解消されたが、SMTP サーバをまだ立ち上げていない、あるいはその SMTP サーバのメッセージ処理が追いつかないなどの理由で、MTA の接続試行が受け入れられなかったことが考えられます。)

  9. メッセージがキューから取り出されました。

図 12-10 に、メッセージが変換チャネルを通過した場合の例を示します。このサイトには、以下のような CONVERSIONS マッピングテーブルがあるものとします。

CONVERSIONS

  IN-CHAN=tcp_local;OUT-CHAN=l;CONVERT Yes

この例では、LOG_FILENAME=1 および LOG_MESSAGE_ID=1 オプションが設定されているものと仮定します。

図 12-10 ログ : 変換チャネルを介して送られた受信 SMTP メッセージ

04-Feb-1998 00:06:26.72 tcp_local conversion E 9 (1)
 amy@siroe.edu rfc822;bert@sesta.com bert@sesta.com
 imta/queue/conversion/ZZ01IT5UAMZ4QW98518O.00
 <01IT5UALL14498518O@siroe.edu>

04-Feb-1998 00:06:29.06 conversion l E 9 (2)
 amy@siroe.edu rfc822;bert@sesta.com bert
 imta/queue/l/ZZ01IT5UAOXLDW98509E.00  <01IT5STUMUFO984Z8L@siroe.edu>

04-Feb-1998 00:06:29.31 conversion D 9 (3)
 amy@siroe.edu rfc822;bert@sesta.com bert
 imta/queue/conversion/ZZ01IT5UAMZ4QW98518O.00
 <01IT5UALL14498518O@siroe.edu>

04-Feb-1998 00:06:32.62 l D 9 (4)
 amy@siroe.edu rfc822;bert@siroe.com bert
 imta/queue/l/ZZ01IT5UAOXLDW98509E.00
 <01IT5STUMUFO984Z8L@siroe.edu>


  1. 外部ユーザ amy@siroe.edu からのメッセージが届きました。このメッセージは、チャネル l から受信者 bert@sesta.com に渡されるものです。しかし、CONVERSIONS マッピングエントリによって、このメッセージは、直接チャネル l に送られず、最初に変換チャネルのキューに入ります。

  2. 変換チャネルが実行され、メッセージがチャネル l のキューに入ります。

  3. 変換チャネルにより、メッセージがキューから取り出されています (古いメッセージファイルを削除)。

  4. 最後に、チャネル l のキューからメッセージが取り出されています (配信)。

図 12-11 は、接続に関するログ機能が有効 (LOG_CONNECTION=3) になっているときの送信メッセージのログ出力例を示しています。この例では、LOG_PROCESS=1LOG_MESSAGE_ID=1、および LOG_FILENAME=1 オプションが設定されているものとします。この例は、ユーザ adam@sesta.com が 1 つのメッセージ (各メッセージコピーのメッセージ ID は同じであることに注意) を bobby@hosta.sesta.comcarl@hosta.sesta.com、および dave@hostb.sesta.com の 3 人の受信者宛に送信した場合を示しています。また、ここでは、メッセージが single_sys チャネルキーワードで示された tcp_localチャネルから送信されると仮定しています。したがって、(1)、(2)、(3) に示されているように、各ホスト名のそれぞれの受信者について、別のメッセージファイルがディスクに作成されます。bobby@hosta.sesta.comcarl@hosta.sesta.com の受信者は同じメッセージファイルに保存されますが、dave@hostb.sesta.com の受信者は別のメッセージファイルに保存されます。

図 12-11 ログ : 送信接続ログ

19-Feb-1998 10:52:05.41 1e488.0 l tcp_local E 1
 adam@sesta.com rfc822;bobby@hosta.sesta.com bobby@hosta.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7BO388000FCN.00  (1)
  <01ITRF7BDHS6000FCN@SESTA.COM>

19-Feb-1998 10:52:05.41 1e488.0 l tcp_local E 1
 adam@sesta.com rfc822;carl@hosta.sesta.com carl@hosta.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7BO388000FCN.00  (2)
  <01ITRF7BDHS6000FCN@SESTA.COM>

19-Feb-1998 10:52:05.74 1e488.1 l tcp_local E 1
 adam@sesta.com rfc822;dave@hostb.sesta.com dave@hostb.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7C11FU000FCN.00  (3)
  <01ITRF7BDHS6000FCN@SESTA.COM>

19-Feb-1998 10:52:10.79 1f625.2.0 tcp_local - O (4)
 TCP|206.184.139.12|5900|206.184.139.66|25
 SMTP/hostb.sesta.com/mailhub.sesta.com         (5)

19-Feb-1998 10:52:10.87 1f625.3.0 tcp_local - O (6)
 TCP|206.184.139.12|5901|206.184.139.70|25
 SMTP/hosta.sesta.com/hosta.sesta.com          (7)

19-Feb-1998 10:52:12.28 1f625.3.1 tcp_local D 1
 adam@sesta.com rfc822;bobby@hosta.sesta.com bobby@hosta.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7BO388000FCN.00
  <01ITRF7BDHS6000FCN@SESTA.COM>
 hosta.sesta.com dns;hosta.sesta.com          (8)
 (TCP|206.184.139.12|5901|206.184.139.70|25)
 (hosta.sesta.com -- Server ESMTP [iMS V5.0 #8790])
 (TCP|206.184.139.12|5901|206.184.139.70|25)
 smtp;250 2.1.5 bobby@hosta.sesta.com and options OK.

19-Feb-1998 10:52:12.28 1f625.3.1 tcp_local D 1
 adam@sesta.com rfc822;carl@hosta.sesta.com carl@hosta.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7BO388000FCN.00
  <01ITRF7BDHS6000FCN@SESTA.COM>
 hosta.sesta.com dns;hosta.sesta.com
 (TCP|206.184.139.12|5901|206.184.139.70|25)
 (hosta.sesta.com -- Server ESMTP [iMS V5.0 #8790])
 (TCP|206.184.139.12|5901|206.184.139.70|25)
 smtp;250 2.1.5 carl@hosta.sesta.com and options OK.

19-Feb-1998 10:52:12.40 1f625.3.2 tcp_local - C (9)
 TCP|206.184.139.12|5901|206.184.139.70|25
 SMTP/hosta.sesta.com/hosta.sesta.com

19-Feb-1998 10:52:13.01 1f625.2.1 tcp_local D 1
 adam@sesta.com rfc822;dave@hostb.sesta.com dave@hostb.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7C11FU000FCN.00
  <01ITRF7BDHS6000FCN@SESTA.COM>
 mailhub.sesta.com dns;mailhub.sesta.com
 (TCP|206.184.139.12|5900|206.184.139.66|25)
 (MAILHUB.SESTA.COM -- Server ESMTP [iMS V5.0 #8694])
 (TCP|206.184.139.12|5900|206.184.139.66|25)
 smtp;250 2.1.5 dave@hostb.sesta.com and options OK.

19-Feb-1998 10:52:13.05 1f625.2.2 tcp_local - C (10)
 TCP|206.184.139.12|5900|206.184.139.66|25
 SMTP/hostb.sesta.com/mailhub.sesta.com


  1. 1 人目の受信者へのメッセージがキューに入れられます。

  2. 続いて、2 人目の受信者へのメッセージがキューに入れられます。

  3. 最後に 3 人目の受信者へのメッセージがキューに入れられます。

  4. LOG_CONNECTION=3 が設定されているため、MTA によってこのエントリが書き込まれています。マイナス記号「-」は、このエントリが送信接続であることを示しています。「O」は、このエントリが接続開始に対応したものであることを示しています。接続開始の処理はスレッド 2 とスレッド 3 によって実行されていますが、これらの接続に対するマルチスレッド TCP/IP チャネルには同一のプロセスが使用されているため、プロセス ID「1f625」が同一であることに注意してください。

  5. 2 つの異なるリモートシステムに接続するために、マルチスレッド SMTP クライアントがそれぞれの接続を開いています。最初はこのエントリで、2 つ目は (7) に示されています。このエントリには、送信側と受信側の IP 番号とポート番号、および最初のホスト名と DNS 検索で見つかったホスト名の両方が表示されます。SMTP/最初のホスト/dns-ホスト の部分には、最初のホスト名と DNS MX レコード検索を実行した後のホスト名が表示されています。mailhub.sesta.com は、hostb.sesta.com の MX サーバであることがわかります。

  6. マルチスレッド SMTP クライアントが、別のスレッドで 2 つ目のシステムとの接続を開いています (プロセスは同じ)。

  7. 2 つの異なるリモートシステムに接続するために、マルチスレッド SMTP クライアントがそれぞれの接続を開きます。2 つ目がこのエントリで、最初の接続は上記の 5 に示されています。このエントリには、送信側と受信側の IP 番号とポート番号、および最初のホスト名と DNS 検索で見つかったホスト名の両方が表示されています。この例では、hosta.sesta.com というシステムがメールを直接受信することがわかります。

  8. この例に示されているように、特定の接続エントリのほか、LOG_CONNECTION=3 によって接続に関連する情報が標準のメッセージエントリに含まれます。

  9. このエントリは、LOG_CONNECTION=3 の設定によって書き込まれます。キューからメッセージ (上記の例では bobby と carl のメッセージ) が取り出され、接続が終了しています。C は接続の終了を表しています。

  10. このエントリは、LOG_CONNECTION=3 の設定によって書き込まれます。キューからメッセージ (上記の例では dave のメッセージ) が取り出され、接続が終了しています。C は接続の終了を表しています。

図 12-12 は、接続に関するログが有効(LOG_CONNECTION=3) になっているときの受信 SMTP メッセージのログ出力例を示しています。

図 12-12 ログ : 受信接続ログ

19-Feb-1998 17:02:08.70 tcp_local + O (1)
 TCP|206.184.139.12|25|192.160.253.66|1244 SMTP (2)

19-Feb-1998 17:02:26.65 tcp_local l E 1
 service@siroe.com rfc822;adam@sesta.com adam
 THOR.SIROE.COM (THOR.SIROE.COM [192.160.253.66]) (3)

19-Feb-1998 17:02:27.05 tcp_local + C (4)
 TCP|206.184.139.12|25|192.160.253.66|1244 SMTP

19-Feb-1998 17:02:31.73 l D 1
 service@siroe.com rfc822;adam@sesta.com adam


  1. リモートシステムが接続を開きます。「O」は、このエントリが接続開始に対応したものであることを示しています。また、「+」は、このエントリが受信接続であることを示しています。

  2. IP 番号とポートが示されています。このエントリから、受信システム (ログファイル エントリを記録しているシステム) の IP アドレスは 206.184.139.12で、接続ポートは 25 であることが分かります。また、送信システムの IP アドレスは 192.160.253.66 で、ポートは 1244 です。

  3. このエントリは、受信 TCP/IP チャネル (tcp_local) からチャネル l の受信者へ送られるメッセージがキューに入ったことを示しています。LOG_CONNECTION=3 が有効になっているため、デフォルト以外の情報も含まれています。特に、送信システムが HELO/EHLO 行に示す名前、接続 IP 番号に関する DNS 逆検索で見つかった送信システムの名前、および送信システムの IP アドレスなどがすべて記録されています。このアクションに影響するチャネルキーワードの詳細については、第 8 章「チャネル定義を設定する」を参照してください。

  4. 受信接続が閉じました。「C」は、このエントリが接続終了に対応したものであることを示しています。また、「+」は、このエントリが受信接続であることを示しています。


前へ    目次    索引    次へ
Copyright (c) 2001 Sun Microsystems, Inc. 既存部分の一部: Copyright (c) 2001 Netscape Communications Corp. All rights reserved.

最終更新日 2001 年 5 月 24 日