- Placering af konfigurationsfilen
- Find dataindeksstien
- Konfiguration af PostgreSQL til at generere logoutput
- Genstart PostgreSQL-tjenesten
- Bekræftelse af loggenerering
Aktivering af logning i PostgreSQL gøres ret let ved at ændre en håndfuld konfigurationsindstillinger og derefter genstarte serveren. Selvom disse indstillinger kan ændres "i hukommelsen", og derved aktiverer midlertidig logning for kun den bestemte klientsession, vil vi i denne vejledning dække, hvordan man konfigurerer postgres til permanent at oprette iterative logfiler for alle sessioner og forbindelser.
Sådan finder du konfigurationsfilen
Hvis du er usikker på, hvor postgresql.conf
config-filen er lokaliseret, den enkleste metode til at finde placeringen er at oprette forbindelse til postgres-klienten (psql
) og udsted SHOW config_file;
kommando:
postgres=# SHOW config_file;
config_file
------------------------------------------
/etc/postgresql/9.3/main/postgresql.conf
I dette tilfælde kan vi se stien til postgresql.conf
filen for denne server er /etc/postgresql/9.3/main/postgresql.conf
. Nu skal du bare åbne den fil med din foretrukne teksteditor, og vi kan begynde at ændre indstillinger:
$ nano /etc/postgresql/9.3/main/postgresql.conf
Find dataindeksstien
Det er også en god idé at bekræfte stien til data
bibliotek til din postgres installation. Dette vil være nyttigt senere, og at hente stien er et spørgsmål om en anden simpel SHOW
erklæring:
postgres=# SHOW data_directory;
data_directory
------------------------------
/var/lib/postgresql/9.3/main
På nogle installationer, konfigurationsfilen og data
mappe vil være ad samme vej, mens de i andre (som dette eksempel) er forskellige. Uanset hvad, kopier disse data
ned mappesti til senere brug.
Konfiguration af PostgreSQL til at generere logoutput
Med postgresql.conf
fil åben, rul ned til ERROR REPORTING AND LOGGING
afsnit, og du vil sandsynligvis se en række konfigurationsmuligheder kommenteret. De mest kritiske af disse indstillinger er log_destination
og logging_collector
. Nedenfor er de anbefalede indstillinger, men du er velkommen til at ændre disse, så de passer til dine egne behov:
#------------------------------------------------------------------------------
# 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
Her beder vi postgres om at generere logfiler i CSV
formatere og udlæse dem til pg_log
bibliotek (indenfor data
vejviser). Vi har også fjernet kommentaren til log_filename
indstilling til at producere et korrekt navn inklusive tidsstempler for logfilerne.
Du kan finde detaljerede oplysninger om alle disse indstillinger i den official documentation
.
Genstart PostgreSQL-tjenesten
Det sidste trin er at genstarte PostgreSQL-tjenesten, så disse indstillinger, især logging_collector
, træder i kraft. Udførelse af en postgres-genstart vil variere fra system til system, men typisk for et unix-system vil kommandoen se nogenlunde sådan ud:
$ service postgresql restart
* Restarting PostgreSQL 9.3 database server [ OK ]
Bekræftelse af loggenerering
Når systemet er blevet genstartet, skal logningen begynde med det samme. For at sikre, at dette er tilfældet, skal du navigere til data/pg_log
mappe for din postgres installation. Husk, at vi greb data
mappesti tidligere, så du skal blot navigere til den mappe ved at tilføje /pg_log
til slutningen for at komme ind i logbiblioteket:
$ cd /var/lib/postgresql/9.3/main/pg_log
List nu filerne, og du skulle se, at en logfil er blevet oprettet efter den tidligere genstart af tjenesten:
$ ls -l
-rw------- 1 postgres postgres 935 Apr 13 20:30 postgresql-2016-04-13_203022.csv
Der har vi det; automatisk genererede logfiler aktiveres med PostgreSQL ved blot at ændre nogle få konfigurationsindstillinger.