- 印刷する
Linux系PostgreSQLの前提条件
- 印刷する
Linux系OSで動作するPostgreSQLには、以下の前提条件があります。
※ID管理が〇になっている項目は、ID管理の機能の前提条件になります。ログが〇になっている項目は、アクセスログ管理のログ自動収集機能、または、ログ自動収集機能で収集したアクセスログ(ログインログ・ログアウトログ・suログ・ログイン失敗ログ)で出力するレポートの前提条件になります。
No | 条件 | 対象機能 | |
ID | ログ | ||
1 | PostgreSQLの監査ログを収集する場合は、syslogを使用してPostgreSQLが動作しているOS上にテキストで出力されている事。 | - | 〇 |
PostgreSQL監査ログの出力設定
PostgreSQL監査ログを収集するためには下記の設定が必要です。
設定は、データベースごとに必要です。
1.PostgreSQL監査ログの出力設定を変更します。
viなどのテキストファイル編集ツールでpostgresql.confを開き、以下の内容を設定してください。
変更内容
No | 変更が必要な設定項目 | 変更内容 |
1 | log_destination | 「'syslog'」固定です。 |
2 | syslog_facility | syslog出力時のfacilityを設定します。 |
3 | log_min_messages | メッセージ階層が「LOG」のログを出力するよう設定します。 |
4 | log_connections | 「on」固定です。 |
5 | log_disconnections | 「on」固定です。 |
6 | log_line_prefix | 「'SessionID=<%c> '」固定です。 |
7 | lc_messages | 「lc_messages = 'C'」または |
変更後例
・・・・・ |
2.postgresql.confを保存後、PostgreSQLを再起動します。
以上で、PostgreSQLの監査ログの出力設定は完了です。
続いて、出力したPostgreSQLの監査ログのsyslog設定を行います。
PostgreSQL監査ログのsyslog設定
PostgreSQL監査ログをsyslogに出力するための設定方法について説明します。
『PostgreSQL監査ログの出力設定』の手順1で設定した[syslog_facility]と[log_min_messages]の内容をsyslog設定に反映します。以下にRed Hat Enterprise Linux 7 標準のrsyslogdを例に説明します。
1.PostgreSQL監査ログをPostgreSQLがインストールされているサーバのsyslogへ出力する設定をします。
viなどのテキストファイル編集ツールで/etc/rsyslog.confを開き、以下の内容を設定してください。
/etc/rsyslog.confへ設定する内容
[facility].[priority] <ログの出力先パス> |
※[facility]は『PostgreSQL監査ログの出力設定』で「syslog_facility」に設定したものを入力してください。
※[priority]『PostgreSQL監査ログの出力設定』で「log_min_messages」に設定したものと紐づく値を入力してください。
No | 『PostgreSQL監査ログの出力設定』で設定したpriority | 紐づく値 |
1 | DEBUG1..DEBUG5 | DEBUG |
2 | INFO | INFO |
3 | NOTICE | NOTICE |
4 | WARNING | NOTICE |
5 | ERROR | WARNING |
6 | LOG | INFO |
※<ログの出力先パス>はサーバ運用ポリシーに合わせて適切なものを設定してください。
※<ログの出力先パス>のパスの最大文字数は80文字です。
ローテートファイルパスも最大文字数は80文字です。余裕を持って設定してください。
※<ログの出力先パス>はファイルが存在している必要があります。存在しない場合は、touchコマンドでファイルを作成してください。
※設定値の区切り文字は1つ以上の空白かタブです。空白を使用してsyslog出力が正常に行われない場合はタブを使用してください。
記入例:
LOCAL1.INFO /var/log/postgres_audit |
2.<ログの出力先パス>にファイルが存在しない場合は、以下のコマンドを実行しファイルを作成してください。
実行コマンド
# touch <ログの出力先パス> |
実行例:
# touch /var/log/postgres_audit |
3.以下のコマンドを実行し、rsyslogdに設定を反映させてください。
実行コマンド
# systemctl restart rsyslog |
以上で、PostgreSQL監査ログのsyslog設定は完了です。
ログローテートの設定
ログローテートを設定する際は、以下の設定にしてください。
No | 条件 |
1 | 一年に二度以上、ログローテートを実施する事。半年に一回以上実施する事。 |
2 | ログローテートしたファイルを最低1世代格納する事。 |
3 | ログローテートしたファイルは、同一のフォルダに格納する事。 |
4 | ログローテートした第1世代のファイルは、圧縮しない事。 |