PureMessage ログファイルをローテーションする

PureMessage ログファイルでディスク容量を過剰に使用しないように、定期的にデータを消去する必要があります。PureMessage にはサンプルの設定ファイル logrotate.conf が含まれています。このファイルは PureMessage ログファイルの内容の「ローテーション」(アーカイブ) に関するパラメータの設定に使用できます。

logrotate ユーティリティは Linux の標準コンポーネントの 1つで、他の UNIX OS で使用できます。

このセクションでは、logrotate の使用について一般的な例を取り上げています。環境および OS に合わせて、必要に応じてこれらの手順を随時変更します。logrotate ユーティリティの詳細については、システムのドキュメントをご覧ください。ログローテーションは UNIX システムの標準メンテナンスタスクの 1つです。そのため、PureMessage のサポート範囲に含まれません。

ログローテーションは、/etc/cron.daily にて定期 cron ジョブとして一般的に実行されます。ただし、PureMessage に合わせて起動間隔を設定したり、ログが一定のサイズに達したら起動するように設定できます。ログローテーション頻度は、システムの処理するメールの量と保存が必要なログデータの量によって異なります (ログファイルからアーカイブされると、データは PureMessage のあらかじめ定義されているレポート内にそれ以上保存されません)。

PureMessage のログローテーションのパラメータは /opt/pmx/etc/logrotate.conf の設定ファイルによって決定され、パラメータは個々の PureMessage ログファイル別に設定されます。各ログファイルのパラメータは、デフォルトでは /opt/pmx/etc/logrotate.d ディレクトリに保存され、システムログ (pmx_log) およびメッセージログ (message_log) の両方に対する設定ファイルを含んでいます。設定ファイル (pmx_log など) は、logrotate.conf ファイル内の include/opt/pmx/etc/logrotate.d ステートメントを経由して (logrotate.conf の) 設定へインポートされます。

logrotate.d ディレクトリには、以下のログの設定ファイルが含まれます。

  • access_log:PureMessage Manager で実行されたすべてのアクション (クリックされたコントロール、要求されたページなど) を記録します。ファイルの保存場所:/opt/pmx/var/log/manager/
  • activity_log:activity_log: PureMessage Manager に関連するユーザーおよびモジュールの活動内容を記録します。ファイルの保存場所:/opt/pmx/var/log/
  • autovac_log:メモリ内のデータベーステーブルの状態の管理に使用する pmx-pg-autovac プログラムの動作を記録します。ファイルの保存場所:/opt/pmx/var/log/
  • blocklist_log:MTA レベルのポリシーのブロックが有効な場合、MTA レベルで処理された各メッセージの IP アドレス、およびその関連アクションを記録します。ファイルの保存場所:/opt/pmx/var/log/
  • error_log:error_log: PureMessage Manager の操作に関連したすべてのエラーを記録します。ファイルの保存場所:/opt/pmx/var/log/manager/
  • message_log:PureMessage で処理されたすべてのメッセージを記録します。デフォルトおよびユーザー定義のキーの両方を含みます。このログは、主にレポート用に使用されます。ファイルの保存場所:/opt/pmx/var/log/
  • pg.log:デフォルトでは、データベースの異常アクティビティを記録します。追加のデータを記録するように設定することもできます。ファイルの保存場所:/opt/pmx/postgres/
  • pmx_log:デバッグ、情報、通知、警告、およびエラーメッセージなど pmx-milter で生成されるさまざまなメッセージを記録します。ファイルの保存場所:/opt/pmx/var/log/
  • scheduler_log:スケジュール設定されているジョブの失敗を記録します。オプションで、成功/失敗したときの両方のログを出力することもできます。また、ジョブが失敗した際の通知を管理者宛てにメール送信することもできます。ファイルの保存場所:/opt/pmx/var/log/
  • vscan_log:デーモンモードのウイルス検索が有効の場合、ウイルス検索したすべてのメッセージを記録します。ファイルの保存場所:/opt/pmx/var/log/

起動頻度と backlog の設定は logrotate.conf ファイルでグローバルに指定するか、各ログファイルに対して個別に指定できます。パラメータの詳細については、システムの logrotate に関するドキュメントをご覧ください。

logrotate をスケジュールされたジョブとして実行する

logrotate ユーティリティは、PureMessage ユーザー (デフォルト設定では、「pmx」) のスケジュールされたジョブとして実行できます。PureMessage Manager で新規のスケジュールされたジョブを作成します。コマンドに /path/to/logrotate を入力します。説明を追加し、スクロールボックスを使用してログのローテーション頻度を設定します。

別の方法では、コマンドラインから /opt/pmx/etc/scheduler.dpmx-logrotate.conf の名前でファイルを作成し、<event logrotate> のセクションを追加します。下記に例を示します。

<event logrotate>
     desc = "Rotate PureMessage Logs"
     type = exec
     action = '/usr/local/sbin/logrotate /opt/pmx/etc/logrotate.conf'
     <when>
         s = 0
         m = 0
         h = 3
     </when>
   </event>

状態ファイルを指定する

プラットフォームによっては、システムの状態ファイルのデフォルトの場所が、PureMessage ユーザーが権限を持っているディレクトリに設定されていない場合があります。その場合、logrotate コマンドで (.conf ファイルを指定する前に) 以下の文字列を挿入して別の状態ファイルを指定します。

-s /opt/pmx/var/log/logrotate.state