OQMGR(8) OQMGR(8) 名前 oqmgr - 古い Postfix キューマネージャ 書式 oqmgr [generic Postfix daemon options] 解説 oqmgr(8) デーモンは入ってくるメールの到着を待ち、Postfix 配送プロセスが 配送するための準備をします。実際のメールルーティング 方 法 は trivial- rewrite(8) デーモンに委託されます。このプログラムは master(8) プロセス マネージャから起動されることを想定しています。 ローカルの double-bounce アドレス宛のメールはログに記録されて捨てられま す 。これにより配送できないバウンス通知によって起こる潜在的なループが止 められます。 メールキュー oqmgr(8) デーモンは次のキューの保守をします: incoming ネットワークから入ってくるメール、またはローカル pickup(8) エー ジェントが maildrop ディレクトリから拾ってきたメール。 active 配送するためにキューマネージャが開いたメッセージ。 active キュー に入れられるメッセージは限られた数だけです(固定された配送速度 の ための穴あきバケツ戦略)。 deferred 最初の試行で配送できなかったメール。キューマネージャには配送試行 の間隔を倍にして指数的に遅らせる機構が組み込まれています。 corrupt 読めない、もしくは損傷したキューファイルは検査のためにここに移動 されます。 hold "hold" に保存されたメッセージは誰かが開放するまでそこに留められ ます。 sets them free. 配送状態レポート oqmgr(8) デーモンは次のディレクトリのメッセージごとの配送状態レポートに 注 目 し つづけます。それぞれの状態レポートファイルは対応するメッセージ ファイルと同じ名前です: bounce メールがバウンスされた理由に関する受信者ごとの状態の情報。これら のファイルは bounce(8) デーモンにより保守されます。 defer メールが遅延された理由に関する受信者ごとの状態の情報。これらのフ ァイルは defer(8) デーモンにより保守されます。 trace Postfix "sendmail -v" または "sendmail -bv" コマンドで要求される 受信者ごとの状態の情報。これらのファイルは trace(8) デーモンによ り保守されます。 oqmgr(8) デーモンは bounce(8)、defer(8) または trace(8) デーモンに不 達 レポートを送るように依頼する責任を負います。 方法 キューマネージャにはキューファイルを開いたり(入力)メッセージ配送 (出力) するための様々な方法が組み込まれています。 穴あきバケツ この方法は active キュー内のメッセージの数を制限し、負荷が重い時 にキューマネージャがメモリを使い果たすのを防ぎます。 公平性 active キュー の場所が空いている時、キューマネージャは incoming キューと deferred キューから1メッセージずつ持ってきます。これ は 配送されずに残っているメールが新しいメールの配送を妨げることを防 ぎます。 スロースタート この方法は同じ目的地への並列配送数をゆっくり調整することで、「大 群(thundering herd)」問題をなくします。 ラウンドロビン キューマネージャは配送先で要求をソートします。ラウンドロビン選択 により、一つの送信先への配送が他の送信先を支配することがないよう にします。 指数関数的遅延 最初の試行で配送できなかったメールは遅延されます。配送試行の時間 間隔はそれぞれの試行ごとに倍になります。 配送先状態キャッシュ キューマネージャは配送できない送信先を短期間のメモリ内リストに保 持することで、不必要な配送試行を避けます。 トリガー ア イドル状態のシステムでは、キューマネージャはイベントのトリガーの到着 を待つか、タイマーで落ちるのを待ちます。トリガーは1バイトのメッセージで す 。メッセージの到着に依存して、キューマネージャは次のうち一つの行動を 起こします(メッセージの後にソフトウェアの内部で使われるシンボル的な定数 が続きます): D (QMGR_REQ_SCAN_DEFERRED) deferred キューのスキャンをはじめます。すでに deferred キュー の スキャンが行なわれている最中であれば、それが終わり次第再びはじめ ます。 I (QMGR_REQ_SCAN_INCOMING) incoming キューのスキャンをはじめます。すでにスキャンが行なわれ ている最中であれば、それが終わり次第再びはじめます。 A (QMGR_REQ_SCAN_ALL) deferred キューファイルのタイムスタンプを無視します。要求は次の deferred キュースキャン時に有効です。 F (QMGR_REQ_FLUSH_DEAD) 動いていない配送方法や配送先に関する全ての情報を消します。 W (TRIGGER_REQ_WAKEUP) 目覚し。これはマスターサーバがサーバ群にいなくならないように説得 するために使います。この動作は incoming キューのスキャンをはじめ ます。 oqmgr(8) デーモンはトリガーのバッファ全体を読みます。複数の別々の ト リ ガー要求は一つにまとめられ、A と F が D と I より先になるようにソートさ れます。従って、deferred キューを動かすには A F D を要求 し、 キュー マ ネージャに新しいメールの到着を知らせるには I を指定します。 標準 なし。oqmgr(8) デーモンは外界と接触しません。 セキュリティ oqmgr(8) デーモンはセキュリティに注意を払う必要がありません。1文字メッ セー ジ を 信 頼 しないローカルユーザから読みこむため、サービス拒否攻撃 (Denial of Service attacks) には弱くなっています。oqmgr(8) デーモンは外 の世界とは話をしませんし、chroot された環境では低い特権に固定されて動か すことができます。 診断 問題や処理は syslog(8) デーモンに記録されます。不正なメッセージファイル は詳細な調査のために corrupt キューにセーブされます。 notify_classes パラメータの設定によっては、ポストマスターにバウンスやそ の他のトラブルが通知されます。 バグ 単 独のキューマネージャプロセスは cleanup(8) のような複数のフロントエン ドプロセスとディスクアクセスの競合をします。突然たくさんのメールが 入っ てくると、外への配送速度にネガティブな影響を及ぼすことがあります。 設定パラメータ oqmgr(8) は永続プロセスのため、main.cf への変更は自動的には取得されませ ん。設定の変更後は "postfix reload" コマンドを使ってください。 以 下 の 文 章 はパラメータの概要のみを提供します。例を含む詳細は post- conf(5) を参照してください。 以下の文章で、transport は master.cf ファイルの最初のエントリです。 互換性の制御 allow_min_user (no) 最初の文字に `-' を持つ受信者アドレスを許します。 ACTIVE キューの制御 qmgr_clog_warn_time (300s) 特定の配送先が Postfix active キューを詰まらせているという警告の 最小遅延間隔。 qmgr_message_active_limit (20000) active キューのメッセージの最大数。 qmgr_message_recipient_limit (20000) Postfix キューマネージャがメモリ内に保持する受信者の最大数、およ び短期間・メモリ内の "動いていない" 配送先の状態キャッシュサイズ の最大サイズ。 配送並列度の制御 qmgr_fudge_factor (100) 古い機能: 大きなメーリングリストのメッセージ配送にビジーなメール システムが使う配送リソースのパーセンテージ。 initial_destination_concurrency (5) 同じ配送先に並列で配送する際の、配送先ごとの並列度の初期値。 default_destination_concurrency_limit (20) 同じ配送先への並列配送の、デフォルトの最大数。 transport_destination_concurrency_limit 指定されたメッセージ transport を使った配送に対して、上記と同 じ 。 受信スケジューリングの制御 default_destination_recipient_limit (50) メッセージ配送ごとの受信者数の、デフォルトの最大数。 transport_destination_recipient_limit 指 定されたメッセージ transport を使った配送に対して、上記と同じ 。 その他のリソースおよび速度の制御 minimal_backoff_time (1000s) 遅延メッセージの配送を試行する最小の時間間隔。 maximal_backoff_time (4000s) 遅延メッセージの配送を試行する最大の時間間隔。 maximal_queue_lifetime (5d) 配送できないものとして送り返すまでに、メッセージがキューに入って いる最大の時間。 queue_run_delay (1000s) deferred キューがキューマネージャによってスキャンされる 時 間 間 隔。 transport_retry_time (60s) Postfix キューマネージャが異常なメッセージ配送 transport に接 触 しようとする時間間隔。 Postfix バージョン 2.1 以降で使えます: bounce_queue_lifetime (5d) 配送できないと見なすまでに、バウンスメッセージがキューに入ってい る最大の時間。 その他の制御 MISCELLANEOUS CONTROLS.IP "config_directory ('postconf -d' の出力 を 参 照)" Postfix main.cf および master.cf 設定ファイルのデフォルトの場所。 daemon_timeout (18000s) ビルトイン監視タイマーによって終了するまでの、Postfix デーモンプ ロセスが要求を扱うことができる時間。 defer_transports (empty) 誰かが "sendmail -q" または等価なものを実行しても、配送される べ きではないメッセージ配送 transport の名前。 helpful_warnings (yes) 問題のある設定をログで警告し、参考になる忠告を提供します。 ipc_timeout (3600s) 内部通信チャネルを使った情報の送受信の時間制限。 process_id (read-only) Postfix コマンドまたはデーモンプロセスのプロセス ID。 process_name (read-only) Postfix コマンドまたはデーモンプロセスのプロセス名。 queue_directory ('postconf -d' の出力を参照) Postfix トップレベルキューディレクトリの場所。 syslog_facility (mail) Postfix ロギングの syslog facility 名。 syslog_name (postfix) 例 えば "smtpd" が "postfix/smtpd" となるようにするために syslog レコードのプロセス名の前に付けられるメールシステムの名前。 ファイル /var/spool/postfix/incoming, incoming キュー /var/spool/postfix/active, active キュー /var/spool/postfix/deferred, deferred キュー /var/spool/postfix/bounce, 非配送状態 /var/spool/postfix/defer, 非配送状態 /var/spool/postfix/trace, 配送状態 関連項目 trivial-rewrite(8), アドレスルーティング bounce(8), 配送状態レポート postconf(5), 設定パラメータ master(5), 一般的なデーモンオプション master(8), プロセスマネージャ syslogd(8), システムロギング README ファイル QSHAPE_README, Postfix キューの解析 ライセンス The Secure Mailer license はこのソフトウェアと一緒に配布されなければい けません。 作者 Wietse Venema IBM T.J. Watson Research P.O. Box 704 Yorktown Heights, NY 10598, USA OQMGR(8)