pgaudit設定ファイルには、pgauditの動作に必要な情報を指定します。pgaudit設定ファイルは、“outputセクション”、“optionセクション”、“ruleセクション”の3つのセクションから構成されています。
outputセクション
outputセクションは、以下の形式で指定します。
パラメータ名 = '値'
outputセクションで指定可能なパラメータを下表に示します。
パラメータ名 | 説明 | 備考 |
---|---|---|
logger | 監査ログの出力先について、専用ログファイル(auditlog)/サーバログ(serverlog)を指定します。 デフォルトは、“auditlog”(専用ログファイル)です。 | 専用ログファイルは、データベースの符号化方式と同じエンコードで出力されます。 |
log_directory | 監査ログを作成するディレクトリを指定します。ディレクトリは、絶対パスまたはデータ格納先のディレクトリからの相対パスで指定します。 デフォルトは、“pgaudit_log”です。 ただし、データ格納先のディレクトリの下に監査ログファイルが出力されないように設定してください。 enable_parallel_loggerパラメータに“on”を指定した場合は、“log_directoryパラメータの設定値/番号”に監査ログが作成されます。詳細は“6.3 スケーラブルな監査ログ機能のセットアップ”を参照してください。 | loggerパラメータに“auditlog”を指定した場合のみ有効 |
log_filename | 監査ログのファイル名を指定します。postgresql.confファイルのlog_filenameと同様に、時刻によって変動するファイル名を指定します。 デフォルトは、“pgaudit-%Y-%m-%d_%H%M%S.log”です。 enable_parallel_loggerパラメータに“on”を指定した場合は、監査ログのファイル名は“番号-log_filenameパラメータの設定値”です。詳細は“6.3 スケーラブルな監査ログ機能のセットアップ”を参照してください。 | loggerパラメータに“auditlog”を指定した場合のみ有効 |
log_file_mode | 許可された人物だけに監査ログファイルへのアクセスを許可するために、監査ログファイルのパーミッションを指定します。パラメータの値はchmod、およびumaskシステムコールで許容されるフォーマットで指定される数値モードです。デフォルトは“0600”です。 監査ログファイルのパーミッションについては、“6.2 セットアップ”の“log_file_mode”を参照してください。 | loggerパラメータに“auditlog”を指定した場合のみ有効 |
log_rotation_age | 監査ログファイルの最大寿命を指定します。ここで指定した時間(分単位)が経過すると、新しい監査ログファイルが生成されます。“0”を設定することで、時間に基づいた新しいログファイルの生成は無効になります。 指定可能な単位はmin(分)、h(時間)、d(日数)です。単位を省略した場合はmin(分)となります。 デフォルトは、“1d”(1日)です。 スケーラブルな監査ログ機能を利用にする場合は、本パラメータを設定することを強く推奨します。なぜならば、すべてのloggerプロセスが同じタイミングで専用ログファイルをローテーションするため、誤った分析を避けることが容易になるからです。詳細は、“スケーラブルな監査ログ機能利用時の注意点”を参照してください。 | loggerパラメータに“auditlog”を指定した場合のみ有効 |
log_rotation_size | 監査ログファイルの最大容量を指定します。ここで指定したキロバイト分のログがログファイルに出力された後、新しいログファイルが生成されます。“0”を設定することで、サイズに基づいた新しいログファイルの生成は無効になります。 指定可能な単位はkB(キロバイト)、MB(メガバイト)、GB(ギガバイト)です。単位を省略した場合はkB(キロバイト)となります。 デフォルトは、“10MB”です。 | loggerパラメータに“auditlog”を指定した場合のみ有効 |
log_truncate_on_rotation | 監査ログファイルを時間を基にしてローテーションする場合に、監査ログを既存の同名のファイルに上書きする(on)/上書きしない(off)を指定します。例えば、“on”を指定し、log_filenameに“pgaudit-%H.log”を指定すると、24個の時別なログファイルが生成され、それらは周期的に上書きされることになります。 デフォルトは、“off”です。“off”を指定すると既存の監査ログファイルに追記します。 | loggerパラメータに“auditlog”を指定した場合のみ有効 |
fifo_directory | 監査ログファイルを出力するデーモンプロセスとバックエンドプロセスの間で使用するFIFO(名前付きパイプ)のディレクトリを指定します。p.PGAUDIT.nnnnという名前のFIFO(nnnnはpostmasterのPID)がfifo_directoriesディレクトリの中に作成されます。いずれのファイルも手作業で削除することはできません。 デフォルトは、“/tmp”です。 enable_parallel_loggerパラメータに“on”を指定した場合は、FIFOの名前は“p.PGAUDIT.nnnn.番号”です。番号の詳細は“6.3 スケーラブルな監査ログ機能のセットアップ”を参照してください。 | loggerパラメータに“auditlog”を指定した場合のみ有効 |
enable_parallel_logger (注1) | 監査ログの出力負荷を分散する(on)/分散しない(off)を指定します。デフォルトは、“off”です。 データベースサーバのサーバログを分散することはできないため、loggerパラメータに“serverlog”を指定したときには、本パラメータの設定は無視されます。 | loggerパラメータに“auditlog”を指定した場合のみ有効 |
parallel_loggers (注1) | 監査ログの出力負荷を分散する場合の多重度を指定します。1以上の数値を指定することができますが、監査ログの出力負荷を分散するためには、2以上の数値を指定してください。 デフォルトは、“2”です。 parallel_loggersは、以下のように見積もってください。 parallel_loggers = コア数÷2 この見積りは、監査ログを出力するための負荷が最も高い条件を想定しているので、見積もった値よりも少ない値を設定したとしても、ほとんどの場合では、性能が大きく劣化することはありません。 loggerプロセスはバックグラウンドワーカーとして動作するため、本パラメータに設定した値を、バックグラウンドワーカーの最大数を設定するpostgresql.confのパラメータmax_worker_processesに加算してください。 | loggerパラメータに“auditlog”を指定した場合のみ有効 |
注1) 障害番号PH23619を含む緊急修正を適用することで有効になります。
パラメータ名 | 説明 | 備考 |
---|---|---|
logger | 監査ログの出力先について、専用ログファイル(auditlog)/サーバログ(serverlog)を指定します。 デフォルトは、“auditlog”(専用ログファイル)です。 | 専用ログファイルは、データベースの符号化方式と同じエンコードで出力されます。 |
log_directory | 監査ログを作成するディレクトリを指定します。ディレクトリは、絶対パスまたはデータ格納先のディレクトリからの相対パスで指定します。 デフォルトは、“pgaudit_log”です。 ただし、データ格納先のディレクトリの下に監査ログファイルが出力されないように設定してください。 enable_parallel_loggerパラメータに“on”を指定した場合は、“log_directoryパラメータの設定値/番号”に監査ログが作成されます。詳細は“6.3 スケーラブルな監査ログ機能のセットアップ”を参照してください。 | loggerパラメータに“auditlog”を指定した場合のみ有効 |
log_filename | 監査ログのファイル名を指定します。postgresql.confファイルのlog_filenameと同様に、時刻によって変動するファイル名を指定します。 デフォルトは、“pgaudit-%Y-%m-%d_%H%M%S.log”です。 enable_parallel_loggerパラメータに“on”を指定した場合は、監査ログのファイル名は“番号-log_filenameパラメータの設定値”です。詳細は“6.3 スケーラブルな監査ログ機能のセットアップ”を参照してください。 | loggerパラメータに“auditlog”を指定した場合のみ有効 |
log_file_mode | Windowsではこのパラメータは無視されます。 | |
log_rotation_age | 監査ログファイルの最大寿命を指定します。ここで指定した時間(分単位)が経過すると、新しい監査ログファイルが生成されます。“0”を設定することで、時間に基づいた新しいログファイルの生成は無効になります。 指定可能な単位はmin(分)、h(時間)、d(日数)です。単位を省略した場合はmin(分)となります。 デフォルトは、“1d”(1日)です。 スケーラブルな監査ログ機能を利用にする場合は、本パラメータを設定することを強く推奨します。なぜならば、すべてのloggerプロセスが同じタイミングで専用ログファイルをローテーションするため、誤った分析を避けることが容易になるからです。詳細は、“スケーラブルな監査ログ機能利用時の注意点”を参照してください。 | loggerパラメータに“auditlog”を指定した場合のみ有効 |
log_rotation_size | 監査ログファイルの最大容量を指定します。ここで指定したキロバイト分のログがログファイルに出力された後、新しいログファイルが生成されます。“0”を設定することで、サイズに基づいた新しいログファイルの生成は無効になります。 指定可能な単位はkB(キロバイト)、MB(メガバイト)、GB(ギガバイト)です。単位を省略した場合はkB(キロバイト)となります。 デフォルトは、“10MB”です。 | loggerパラメータに“auditlog”を指定した場合のみ有効 |
log_truncate_on_rotation | 監査ログファイルを時間を基にしてローテーションする場合に、監査ログを既存の同名のファイルに上書きする(on)/上書きしない(off)を指定します。例えば、“on”を指定し、log_filenameに“pgaudit-%H.log”を指定すると、24個の時別なログファイルが生成され、それらは周期的に上書きされることになります。 デフォルトは、“off”です。“off”を指定すると既存の監査ログファイルに追記します。 | loggerパラメータに“auditlog”を指定した場合のみ有効 |
enable_parallel_logger (注1) | 監査ログの出力負荷を分散する(on)/分散しない(off)を指定します。デフォルトは、“off”です。 データベースサーバのサーバログを分散することはできないため、loggerパラメータに“serverlog”を指定したときには、本パラメータの設定は無視されます。 | loggerパラメータに“auditlog”を指定した場合のみ有効 |
parallel_loggers (注1) | 監査ログの出力負荷を分散する場合の多重度を指定します。1以上の数値を指定することができますが、監査ログの出力負荷を分散するためには、2以上の数値を指定してください。 デフォルトは、“2”です。 parallel_loggersは、以下のように見積もってください。 parallel_loggers = コア数÷2 この見積りは、監査ログを出力するための負荷が最も高い条件を想定しているので、見積もった値よりも少ない値を設定したとしても、ほとんどの場合では、性能が大きく劣化することはありません。 loggerプロセスはバックグラウンドワーカーとして動作するため、本パラメータに設定した値を、バックグラウンドワーカーの最大数を設定するpostgresql.confのパラメータmax_worker_processesに加算してください。 | loggerパラメータに“auditlog”を指定した場合のみ有効 |
注1) 障害番号PH23619を含む緊急修正を適用することで有効になります。
参考
loggerパラメータに“serverlog”を指定した場合、監査ログはサーバログにログメッセージとして出力されるため、監査ログの先頭にpostgresql.confファイルのlog_line_prefixパラメータによるステータス情報とメッセージ深刻度レベルが出力されます。
loggerパラメータを省略、または“auditlog”を指定した場合、監査ログは専用ログとして専用ログファイルに出力されるため、postgresql.confファイルのlog_line_prefixパラメータによるステータス情報やメッセージ深刻度レベルは出力されません。
監査ログの出力形式については、“6.5 Session Audit Logging”の“出力形式”または“6.6 Object Audit Logging”の“出力形式”を参照してください。
ポイント
log_file_modeパラメータは、postgresql.confのlog_file_modeパラメータの設定およびinitdbコマンドの--allow-group-accessオプションによる影響は受けません。また、監査ログを専用ログファイルに出力する場合、log_directoryパラメータで指定するディレクトリのデフォルト値はデータ格納先のディレクトリ配下になります。そのため、log_file_modeパラメータで指定したパーミッションが、initdbコマンドの-—allow-group-accessオプションの対象となるデータ格納先のパーミッションと競合する場合には、log_directoryパラメータで指定するディレクトリはデータ格納先以外を指定してください。
ポイント
サーバログのファイル権限がシステムのセキュリティ要件を満たさない場合、監査ログの出力先に専用ログファイルを指定して、セキュリティ要件を満たすように出力先ディレクトリのアクセス権限を設定してください。その際、データベース管理者に対して、読み込みおよび書き込み権限を付与してください。
optionセクション
optionセクションは、以下の形式で指定します。
パラメータ名 = '値'
optionセクションで指定可能なパラメータを下表に示します。
パラメータ名 | 説明 | 備考 |
---|---|---|
role | Object Audit Loggingで使用するroleの名前を指定します。 大文字、キーワード、マルチバイト文字およびカンマを指定する場合は、二重引用符で囲んでください。 | Object Audit Loggingのみで使用するパラメータ |
log_catalog | pg_catalogに対するログ出力の有効(on)/無効(off)を指定します。 pgAdminなど、pg_catalogにアクセスする監査ログを取得しない場合に“off”を指定します。 デフォルトは、“on”(有効)です。 | |
log_parameter | SQL実行でパラメータで渡した値の出力について、有効(on)/無効(off)を指定します。 デフォルトは、“off”(無効)です。 | |
log_statement_once | 同じSQLがログの出力対象となる場合、2回目以降のSQLの出力について、抑止する(on)/抑止しない(off)を指定します。 デフォルトは、“off”(抑止しない)です。 | |
log_level | 監査ログのログレベルを指定します。 有効な値は、“DEBUG5”、“DEBUG4”、“DEBUG3”、“DEBUG2”、“DEBUG1”、“INFO”、“NOTICE”、“WARNING”、および“LOG”です。 デフォルトは、“LOG"です。 | loggerパラメータに“serverlog”を指定した場合のみ有効 |
ruleセクション
ruleセクションは、Session Audit Loggingで使用されるセクションです。“6.5 Session Audit Logging”を参照してください。
注意
optionセクションにroleパラメータを指定した場合は、ruleセクションを指定しないでください。ruleセクションを指定すると、Object Audit LoggingとSession Audit Loggingの監査ログが混在して出力されるため、CSV形式で参照できなくなるためです。