この節には、次の項があります。
メッセージキューが過度に大きくなる場合は、メッセージが配信されていない、配信が遅延されている、あるいは入るのが速すぎてシステムがメッセージを配信できないことを示していることがあります。これは、膨大なメッセージがシステムに送られるサービス拒否攻撃に遭っている、ジョブコントローラが実行されていないなど、さまざまな原因によって発生します。
メッセージキューの詳細については、「8.5.2 チャネルメッセージキュー」、「26.3.6 メッセージがキューから取り出されない」、および 「26.3.7 MTA メッセージが配信されない」を参照してください。
ディスク容量使用状況が高くなる。
ユーザーが適切な時間内にメッセージを受信できない。
メッセージキューのサイズが異常に大きい。
通常、メッセージキューを監視する最良の方法は、imsimta qm を使用することです。「27.8.6 imsimta qm counters」を参照してください。
キューディレクトリ (msg-svr-base/data/queue/) 内のファイルの数を監視することもできます。ファイルの数はサイト固有であるので、「多すぎる」ものを見つけるための基準を作る必要があります。これは、キューファイルのサイズを 2 週間以上記録して、おおよその平均をとることによって行います。
配信エラーは、外部サイトへのメッセージの配信試行のエラーです。配信エラーの頻度の大幅な増加は、DNS サーバーの故障や、接続への応答時のリモートサーバーのタイムアウトなど、ネットワークに関する何らかの問題の兆候です。
表面的な問題の兆候はありません。多数の Q レコードが mail.log_current に表示されます。
配信エラーは、ログエントリコード Q とともに MTA ログに記録されます。msg-svr-base/data/log/mail.log_current ファイル内のレコードを確認します。次に例を示します。
mail.log:06-Oct-2003 00:24:03.66 501d.0b.9 ims-ms Q 5 durai.balusamy@Sun.COM rfc822;durai.balusamy@Sun.COM durai@ims-ms-daemon <00ce01c38bda$c7e2b240$6501a8c0@guindy> Mailbox is busy
指定した IP アドレスからの受信用 SMTP 接続の数が異常に増加した場合は、次の状況を示しています。
外部ユーザーがメールをリレーしようとしている。
外部ユーザーがサービス拒否攻撃を行おうとしている。
外部ユーザーによるメールのリレー: ログエントリレコード J (拒否されたリレー) を含むレコードの msg-svr-base/log/mail.log_current を確認します。リモート IP アドレスのログを有効にするには、option.dat ファイルに次の行を追加します。
log_connection=1
この機能を有効にすると、わずかながらパフォーマンスが低下します。
サービス拒否攻撃: SMTP サーバーに接続しているユーザーとその人数を調べるには、netstat コマンドを実行し、SMTP ポートの接続数 (デフォルトは 25) を確認します。次に例を示します。
Local address Remote address State 192.18.79.44.25 192.18.78.44.56035 32768 0 32768 0 CLOSE_WAIT 192.18.79.44.25 192.18.136.54.57390 8760 0 24820 0 ESTABLISHED 192.18.79.44.25 192.18.26.165.48508 33580 0 24820 0 TIME_WAIT |
最初に、システムで特定の読み取りが異常かどうかを判断するために、SMTP 接続の適切な数とその状態 (ESTABLISHED、CLOSE_WAIT など) を決定する必要があります。
多数の接続が SYN_RECEIVED 状態にある場合は、ネットワークがうまく稼働していなかったり、サービス拒否攻撃が行われていたりすることがあります。さらに、SMTP サーバープロセスの有効期間は制限されています。これは、dispatcher.cnf ファイルの MTA 設定変数 MAX_LIFE_TIME によって制御されます。デフォルトは 86,400 秒 (1 日) です。同様に、MAX_LIFE_CONNS は、サーバープロセスがその有効期間中に処理できる接続の最大数を指定します。特定の SMTP サーバーが長時間稼働している場合は、調査することもできます。
MTA が機能するためには、ディスパッチャーおよびジョブコントローラプロセスが動作している必要があります。種類ごとに 1 つのプロセスが必要です。
ディスパッチャーがダウンしていたり十分なリソースがない場合、SMTP 接続は拒否されます。
ジョブコントローラがダウンしている場合、キューのサイズが大きくなります。
dispatcher および job_controller というプロセスが存在しているかどうかチェックします。「26.2.4 ジョブコントローラとディスパッチャーが実行中であることをチェックする」を参照してください。