- Menemukan File Konfigurasi
- Temukan Jalur Direktori Data
- Mengonfigurasi PostgreSQL untuk Menghasilkan Keluaran Log
- Mulai ulang Layanan PostgreSQL
- Memverifikasi Pembuatan Log
Mengaktifkan logging dalam PostgreSQL dibuat cukup mudah dengan mengubah beberapa pengaturan konfigurasi dan kemudian memulai ulang server. Meskipun pengaturan ini dapat diubah “di memori”, sehingga memungkinkan pencatatan log sementara hanya untuk sesi klien tertentu, dalam tutorial ini kita akan membahas cara mengonfigurasi postgres untuk membuat file log iteratif secara permanen untuk semua sesi dan koneksi.
Menemukan File Konfigurasi
Jika Anda tidak yakin di mana postgresql.conf
config file berada, metode paling sederhana untuk menemukan lokasi adalah dengan menghubungkan ke klien postgres (psql
) dan keluarkan SHOW config_file;
perintah:
postgres=# SHOW config_file;
config_file
------------------------------------------
/etc/postgresql/9.3/main/postgresql.conf
Dalam hal ini, kita dapat melihat path ke postgresql.conf
file untuk server ini adalah /etc/postgresql/9.3/main/postgresql.conf
. Sekarang buka saja file itu dengan editor teks favorit Anda dan kita dapat mulai mengubah pengaturan:
$ nano /etc/postgresql/9.3/main/postgresql.conf
Temukan Jalur Direktori Data
Sebaiknya konfirmasi juga jalur data
direktori untuk instalasi postgres Anda. Ini akan berguna di kemudian hari, dan mengambil jalur adalah masalah SHOW
sederhana lainnya pernyataan:
postgres=# SHOW data_directory;
data_directory
------------------------------
/var/lib/postgresql/9.3/main
Pada beberapa instalasi, file konfigurasi dan data
direktori akan berada di jalur yang sama, sementara di direktori lain (seperti contoh ini), mereka berbeda. Apa pun itu, salin data
ini ke bawah jalur direktori untuk digunakan nanti.
Mengonfigurasi PostgreSQL untuk Menghasilkan Keluaran Log
Dengan postgresql.conf
file terbuka, gulir ke bawah ke ERROR REPORTING AND LOGGING
bagian dan Anda mungkin akan melihat sejumlah opsi konfigurasi dikomentari. Yang paling penting dari pengaturan ini adalah log_destination
dan logging_collector
. Di bawah ini adalah pengaturan yang disarankan, meskipun Anda bebas mengubahnya agar sesuai dengan kebutuhan Anda:
#------------------------------------------------------------------------------
# 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
Di sini kami memberi tahu postgres untuk membuat log di CSV
memformat dan menampilkannya ke pg_log
direktori (dalam data
direktori). Kami juga telah membatalkan komentar pada log_filename
pengaturan untuk menghasilkan beberapa nama yang tepat termasuk cap waktu untuk file log.
Anda dapat menemukan informasi rinci tentang semua pengaturan ini dalam official documentation
.
Mulai ulang Layanan PostgreSQL
Langkah terakhir adalah me-restart layanan PostgreSQL agar pengaturan ini, khususnya logging_collector
, akan berlaku. Melakukan restart postgres akan berbeda dari satu sistem ke sistem lainnya, tetapi biasanya untuk sistem unix perintahnya akan terlihat seperti ini:
$ service postgresql restart
* Restarting PostgreSQL 9.3 database server [ OK ]
Memverifikasi Pembuatan Log
Setelah sistem dimulai ulang, pencatatan harus segera dimulai. Untuk memastikan hal ini terjadi, navigasikan ke data/pg_log
direktori instalasi postgres Anda. Ingat bahwa kami mengambil data
jalur direktori sebelumnya, jadi cukup navigasikan ke direktori itu dengan menambahkan /pg_log
sampai akhir untuk masuk ke direktori log:
$ cd /var/lib/postgresql/9.3/main/pg_log
Sekarang daftar file dan Anda akan melihat file log telah dibuat setelah restart layanan sebelumnya:
$ ls -l
-rw------- 1 postgres postgres 935 Apr 13 20:30 postgresql-2016-04-13_203022.csv
Di sana kita memilikinya; file log yang dibuat secara otomatis diaktifkan dengan PostgreSQL dengan mengubah hanya beberapa pengaturan konfigurasi.