- 構成ファイルの検索
- データディレクトリパスを見つける
- ログ出力を生成するためのPostgreSQLの構成
- PostgreSQLサービスを再起動します
- ログ生成の確認
PostgreSQL内でのロギングの有効化は、いくつかの構成設定を変更してからサーバーを再起動することで非常に簡単になります。これらの設定は「メモリ内」で変更できるため、その特定のクライアントセッションに対してのみ一時的なログを有効にできますが、このチュートリアルでは、すべてのセッションと接続に対して反復ログファイルを永続的に作成するようにpostgresを構成する方法について説明します。
postgresql.conf
がどこにあるかわからない場合 設定ファイルが見つかりました。場所を見つける最も簡単な方法は、postgresクライアント(psql
)に接続することです。 )そしてSHOW config_file;
を発行します コマンド:
postgres=# SHOW config_file;
config_file
------------------------------------------
/etc/postgresql/9.3/main/postgresql.conf
この場合、postgresql.conf
へのパスを確認できます。 このサーバーのファイルは/etc/postgresql/9.3/main/postgresql.conf
です。 。お気に入りのテキストエディタでそのファイルを開くだけで、設定の変更を開始できます:
$ nano /etc/postgresql/9.3/main/postgresql.conf
data
のパスを確認することもお勧めします postgresインストール用のディレクトリ。これは後で役立ちます。パスの取得は、別の単純なSHOW
の問題です。 ステートメント:
postgres=# SHOW data_directory;
data_directory
------------------------------
/var/lib/postgresql/9.3/main
一部のインストールでは、構成ファイルとdata
ディレクトリは同じパスに沿っていますが、他のディレクトリ(この例のように)では異なります。いずれにせよ、このdata
をコピーしてください 後で使用するためのディレクトリパス。
postgresql.conf
を使用 ファイルを開き、ERROR REPORTING AND LOGGING
まで下にスクロールします セクションを開くと、コメントアウトされたいくつかの構成オプションが表示される可能性があります。これらの設定の中で最も重要なのはlog_destination
です。 およびlogging_collector
。以下は推奨設定ですが、必要に応じて自由に変更してください。
#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------
# - Where to Log -
log_destination = 'csvlog' # Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
# depending on platform. csvlog
# requires logging_collector to be on.
# This is used when logging to stderr:
logging_collector = on # Enable capturing of stderr and csvlog
# into log files. Required to be on for
# csvlogs.
# (change requires restart)
# These are only used if logging_collector is on:
log_directory = 'pg_log' # directory where log files are written,
# can be absolute or relative to PGDATA
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
# can include strftime() escapes
ここでは、postgresにCSV
でログを生成するように指示しています。 フォーマットしてpg_log
に出力します ディレクトリ(data
内 ディレクトリ)。 log_filename
のコメントも解除しました ログファイルのタイムスタンプを含む適切な名前を生成するように設定します。
これらすべての設定の詳細については、official documentation
をご覧ください。 。
PostgreSQLサービスを再起動します
最後のステップは、PostgreSQLサービスを再起動して、これらの設定、特にlogging_collector
を実行することです。 、有効になります。 postgresの再起動の実行はシステムごとに異なりますが、通常、UNIXシステムの場合、コマンドは次のようになります。
$ service postgresql restart
* Restarting PostgreSQL 9.3 database server [ OK ]
システムが再起動されると、ロギングはすぐに開始されます。これを確実に行うには、data/pg_log
に移動します postgresインストールのディレクトリ。 data
を取得したことを忘れないでください 以前のディレクトリパスなので、/pg_log
を追加してそのディレクトリに移動するだけです。 最後にログディレクトリに移動します:
$ cd /var/lib/postgresql/9.3/main/pg_log
ここでファイルを一覧表示すると、前回のサービスの再起動後にログファイルが作成されていることがわかります。
$ ls -l
-rw------- 1 postgres postgres 935 Apr 13 20:30 postgresql-2016-04-13_203022.csv
そこにあります。自動生成されたログファイルは、いくつかの構成設定を変更するだけでPostgreSQLで有効になります。