アプリケーションや運用操作で発生したエラーを監視したり、原因の追跡を行いやすくするための設定について説明します。
エラーログの設定は、initdbコマンドでインスタンスを作成した場合だけ行ってください。
WebAdminでインスタンスを作成した場合は、すでにエラーログの設定が行われているため、設定する必要はありません。
ただし、システムログを出力する場合は、“OSのシステムログに関する設定”に示す対処が必要です。
また、一部のパラメータはWebAdminが使用しているため、変更するとWebAdminが正しく動作しません。詳細は、“付録D 設定パラメータ”を参照してください。
デフォルトでは、エラー(ERROR、FATAL、PANIC)しか出力しない設定となっています。エラー以外のメッセージを出力する場合は、OSのスーパーユーザーで、システムログの設定を変更する必要があります。
システムログデーモンの動作設定ファイルを編集する
システムログデーモンの動作設定ファイル(/etc/syslog.conf)を編集し、出力するメッセージのファシリティ(facility)とレベル(level)を、出力対象のファイルの行に追加してください。
ファシリティ(facility)は、postgresql.confのsyslog_facilityパラメータに指定します。
また、レベルの指定順序に規則があるなど、注意事項があります。これら詳細については、OSのマニュアルを参照してください。
以下は、デフォルトのファシリティであるLOCAL0に対して情報レベル(info)についても、一般のシステムログのファイル(/var/adm/messages)に出力するための設定例です。下線部分を追加しています。
*.err; local0.info;kern.debug;daemon.info;mail.crit /var/adm/messages
システムログデーモンを再起動する
svcadmコマンドを使用して、以下のようにシステムログデーモンを再起動してください。
# svcadm restart svc:/system/system-log
注意
システムログは、他のインスタンスの管理者に参照されないよう、必要に応じてサーバログに出力先を設定してください。
アプリケーションのエラーは、システムログやサーバログに出力されます。システムログやサーバログの出力先のディレクトリには、インスタンス管理者以外の人に参照されないよう、アクセス権限を設定してください。
postgresql.confの以下のパラメータを編集してください。
パラメータ名 | パラメータの意味 | 設定を有効にする方法 |
---|---|---|
syslog_ident | 複数のインスタンスを利用する場合に、システムログに出力するメッセージを識別するために、メッセージにつけるラベルを指定します。 | pg_ctlコマンドのreloadモード |
logging_collector | インスタンスが出力するメッセージをサーバログファイルに出力するように、“on”を指定します。サーバログファイルは、データベースクラスタ内のpg_logディレクトリの下に作成されます。 | pg_ctlコマンドのrestartモード |
log_destination | インスタンスが出力するメッセージを、画面とシステムログに出力するように、“stderr,syslog”を指定します。 | pg_ctlコマンドのreloadモード |
log_line_prefix | インスタンスが出力するメッセージの先頭につける情報を指定します。これらの情報はメッセージの自動監視に便利です。 SQLSTATE値、出力時刻、実行したホスト、アプリケーション名、ユーザーIDを出力することができます。 詳細は、“PostgreSQL文書”の“何をログに”を参照してください。 例)log_line_prefix = '%e: %t [%p]: [%l-1] user = %u,db = %d,remote = %r app = %a ' | pg_ctlコマンドのreloadモード |
ポイント
システムログに出力されるアプリケーションのエラーを少なくするためには、 “PostgreSQL文書”の“いつログを取得するか”および“何をログに”を参照して、出力するメッセージの内容が少なくなるように設定してください。
エラーを、他のソフトウェアと分けて出力するためには、“PostgreSQL文書”の“ログの出力先”を参照し、システムログではなくサーバログファイルに出力を行うように設定してください。