Microsoft Windows系PostgreSQLの前提条件

    Microsoft Windows系PostgreSQLの前提条件


    記事の要約

    Windows系OSで動作するPostgreSQLには、以下の前提条件があります。

    ※ID管理が〇になっている項目は、ID管理の機能の前提条件になります。ログが〇になっている項目は、アクセスログ管理のログ自動収集機能、または、ログ自動収集機能で収集したアクセスログ(ログインログ・ログアウトログ・suログ・ログイン失敗ログ)で出力するレポートの前提条件になります。

    No

    制約

    制約機能

    ID

    ログ

    1

    PostgreSQL監査ログがWindowsイベントログ(アプリケーション)に出力されている事。
    詳細は『PostgreSQL監査ログの出力設定(Windows)』を参照してください。

    -

    2

    Windows イベントログ(アプリケーション)のローテート設定が下記どちらかの条件を満たしている事。

    • 必要に応じてイベントを上書きする(最も古いイベントから)
    • イベントを上書きしないでログをアーカイブする

    ※Windows Server 2019で「イベントを上書きしないでログをアーカイブする」の設定をした場合に、イベントログが「最大ログサイズ」になってもアーカイブされず、新たなイベントログが記録されないという事象が確認されています。該当のOSで「イベントを上書きしないでログをアーカイブする」の設定をした場合は、正常にイベントログがアーカイブされる事を確認してください。

    -

    3

    Windowsイベントログ(アプリケーション)のローテート設定が「必要に応じてイベントを上書きする(最も古いイベントから)」になっている場合は、下記の設定になっている事。

    • メンテナンスなどのサーバ停止で、ログの収集が出来ない期間を考慮して、最低2日分のログが上書きされずに蓄積出来る「最大ログサイズ」が設定されている事

    -

    4

    Windowsイベントログ(アプリケーション)のローテート設定が「イベントを上書きしないでログをアーカイブする」になっている場合は、下記の設定になっている事。

    • アーカイブの頻度は2日以上になる「最大ログサイズ」が設定されている事
    • イベントログのプロパティにある「ログのパス」で指定されているファイルのフォルダが、共有フォルダになっている事
    • 共有フォルダにPostgreSQLが動作しているOSのログ収集用アカウントのアクセス権(読み込み)を設定している事

    -

    5

    Web Consoleで文字コードをUTF-8として表示しているため、下記のいずれかの設定がされている事。
    ※異なる設定の場合は、PostgreSQLから返却されたメッセージで文字化けすることがあります。

    • 「lc_messages = 'C'」または「lc_messages = 'en_US.UTF-8'」に設定し、英語メッセージにする
    •  PostgreSQLが動作しているWindowsOSの「ワールドワイド言語サポートでUnicode UTF-8を使用」を有効にし、UTF-8にする
    -

    PostgreSQL監査ログの出力設定(Windows)

    PostgreSQL監査ログをWindows イベントログ(アプリケーション)に出力させます。
    また、PostgreSQLへのログイン・ログアウトについて、監査ログを出力する設定が必要です。

    1.PostgreSQLの設定ファイル<postgresql.conf>を開き、以下の内容を設定してください。

    No

    変更が必要な設定項目

    変更内容

    1

    log_destination

    「'eventlog'」固定です。 (※1)

    2

    log_connections

    「on」固定です。 (※1)

    3

    log_disconnections

    「on」固定です。 (※1)

    4

    event_source

    「#event_source = 'PostgreSQL'」固定です。

    5

    lc_messages

    「lc_messages = 'C'」または「lc_messages = 'en_US.UTF-8'」固定です。

    (※1) 設定項目先頭の「#」は削除し、設定を有効にします。

    2.コマンドプロンプトから下記を実行し、イベントソース名をWindows OSのevent logライブラリに登録します。

    設定項目event_sourceがデフォルト値から変更されており、手順1で「#event_source = 'PostgreSQL'」に設定を戻した場合のみ、PostgreSQLをインストールしたアカウントで以下のコマンドを実行してください。

    regsvr32 "<pgevent.dllのフルパス>"

    インストールフォルダが「C:\Program Files\PostgreSQL\12」の場合のコマンド例

    regsvr32 "C:\Program Files\PostgreSQL\12\lib\pgevent.dll"

    3.PostgreSQLのサービス再起動をします。「スタート」-「管理ツール」-「サービス」からPostgreSQLサービスを再起動してください。

    サービス名が「postgresql-x64-12」の場合の画面例