- Het configuratiebestand zoeken
- Zoek het gegevensdirectorypad
- PostgreSQL configureren om logboekuitvoer te genereren
- Herstart de PostgreSQL-service
- Log genereren verifiëren
Logboekregistratie inschakelen binnen PostgreSQL is vrij eenvoudig gemaakt door een handvol configuratie-instellingen te wijzigen en vervolgens de server opnieuw op te starten. Hoewel deze instellingen "in het geheugen" kunnen worden gewijzigd, waardoor tijdelijke logboekregistratie alleen voor die specifieke clientsessie mogelijk wordt, bespreken we in deze zelfstudie hoe u postgres kunt configureren om permanent iteratieve logbestanden voor alle sessies en verbindingen te maken.
Het configuratiebestand zoeken
Als u niet zeker weet waar de postgresql.conf
config-bestand bevindt, is de eenvoudigste methode om de locatie te vinden, verbinding te maken met de postgres-client (psql
) en geef het SHOW config_file;
commando:
postgres=# SHOW config_file;
config_file
------------------------------------------
/etc/postgresql/9.3/main/postgresql.conf
In dit geval kunnen we het pad zien naar de postgresql.conf
bestand voor deze server is /etc/postgresql/9.3/main/postgresql.conf
. Open nu dat bestand met je favoriete teksteditor en we kunnen beginnen met het wijzigen van de instellingen:
$ nano /etc/postgresql/9.3/main/postgresql.conf
Zoek het pad van de gegevensdirectory
Het is ook een goed idee om het pad van de data
te bevestigen map voor uw postgre-installatie. Dit zal later nuttig zijn, en het ophalen van het pad is een kwestie van een andere eenvoudige SHOW
verklaring:
postgres=# SHOW data_directory;
data_directory
------------------------------
/var/lib/postgresql/9.3/main
Bij sommige installaties zijn het configuratiebestand en de data
directory zal langs hetzelfde pad staan, terwijl ze in andere (zoals dit voorbeeld) anders zijn. Kopieer in ieder geval deze data
directorypad voor later gebruik.
PostgreSQL configureren om logboekuitvoer te genereren
Met de postgresql.conf
bestand openen, scroll naar beneden naar de ERROR REPORTING AND LOGGING
sectie en u zult waarschijnlijk een aantal configuratie-opties zien die zijn becommentarieerd. De meest kritische van deze instellingen zijn log_destination
en logging_collector
. Hieronder staan de aanbevolen instellingen, maar u kunt deze naar eigen wens aanpassen:
#------------------------------------------------------------------------------
# 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
Hier vertellen we postgres om logs te genereren in de CSV
formaat en om ze uit te voeren naar de pg_log
directory (binnen de data
adresboek). We hebben ook de commentaar verwijderd van de log_filename
instelling om een eigennaam te produceren, inclusief tijdstempels voor de logbestanden.
U kunt gedetailleerde informatie over al deze instellingen vinden in de official documentation
.
Herstart de PostgreSQL-service
De laatste stap is om de PostgreSQL-service opnieuw te starten, zodat deze instellingen, in het bijzonder logging_collector
, zal van kracht worden. Het uitvoeren van een herstart na gres verschilt van systeem tot systeem, maar voor een Unix-systeem ziet het commando er ongeveer zo uit:
$ service postgresql restart
* Restarting PostgreSQL 9.3 database server [ OK ]
Log genereren verifiëren
Nadat het systeem opnieuw is opgestart, moet het loggen onmiddellijk beginnen. Om ervoor te zorgen dat dit het geval is, navigeert u naar de data/pg_log
map van uw postgre-installatie. Onthoud dat we de data
hebben gepakt directorypad eerder, dus navigeer eenvoudig naar die directory door /pg_log
. toe te voegen naar het einde om in de logmap te komen:
$ cd /var/lib/postgresql/9.3/main/pg_log
Maak nu een lijst van de bestanden en u zou moeten zien dat er een logbestand is aangemaakt na de vorige herstart van de service:
$ ls -l
-rw------- 1 postgres postgres 935 Apr 13 20:30 postgresql-2016-04-13_203022.csv
Daar hebben we het; automatisch gegenereerde logbestanden worden ingeschakeld met PostgreSQL door slechts een paar configuratie-instellingen te wijzigen.