- Auffinden der Konfigurationsdatei
- Suchen Sie den Datenverzeichnispfad
- Konfigurieren von PostgreSQL zum Generieren von Protokollausgaben
- Starten Sie den PostgreSQL-Dienst neu
- Verifizieren der Protokollerstellung
Das Aktivieren der Protokollierung in PostgreSQL wird durch das Ändern einiger Konfigurationseinstellungen und das anschließende Neustarten des Servers ganz einfach. Während diese Einstellungen „im Speicher“ geändert werden können, wodurch die temporäre Protokollierung nur für diese bestimmte Clientsitzung aktiviert wird, behandeln wir in diesem Tutorial, wie Postgres konfiguriert wird, um permanent iterative Protokolldateien für alle Sitzungen und Verbindungen zu erstellen.
Auffinden der Konfigurationsdatei
Wenn Sie sich nicht sicher sind, wo die postgresql.conf
config-Datei befindet, ist die einfachste Methode, den Speicherort zu finden, die Verbindung mit dem Postgres-Client (psql
) und geben Sie die SHOW config_file;
aus Befehl:
postgres=# SHOW config_file;
config_file
------------------------------------------
/etc/postgresql/9.3/main/postgresql.conf
In diesem Fall sehen wir den Pfad zur postgresql.conf
Datei für diesen Server ist /etc/postgresql/9.3/main/postgresql.conf
. Jetzt öffnen Sie diese Datei einfach mit Ihrem bevorzugten Texteditor und wir können mit dem Ändern der Einstellungen beginnen:
$ nano /etc/postgresql/9.3/main/postgresql.conf
Suchen Sie den Datenverzeichnispfad
Es ist auch eine gute Idee, den Pfad der data
zu bestätigen Verzeichnis für Ihre Postgres-Installation. Dies wird später nützlich sein, und das Abrufen des Pfads ist eine Sache eines weiteren einfachen SHOW
Aussage:
postgres=# SHOW data_directory;
data_directory
------------------------------
/var/lib/postgresql/9.3/main
Bei manchen Installationen sind die Konfigurationsdatei und die data
Verzeichnis befinden sich auf demselben Pfad, während sie in anderen (wie diesem Beispiel) unterschiedlich sind. Kopieren Sie in jedem Fall diese data
Verzeichnispfad zur späteren Verwendung.
Konfigurieren von PostgreSQL zum Generieren von Protokollausgaben
Mit der postgresql.conf
Datei öffnen, scrollen Sie nach unten zu ERROR REPORTING AND LOGGING
Abschnitt und Sie werden wahrscheinlich eine Reihe von Konfigurationsoptionen auskommentiert sehen. Die kritischste dieser Einstellungen ist log_destination
und logging_collector
. Nachfolgend finden Sie die empfohlenen Einstellungen, die Sie jedoch gerne an Ihre eigenen Bedürfnisse anpassen können:
#------------------------------------------------------------------------------
# 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 weisen wir Postgres an, Protokolle im CSV
zu generieren formatieren und im pg_log
ausgeben Verzeichnis (innerhalb der data
Verzeichnis). Wir haben auch den log_filename
auskommentiert Einstellung, um einen richtigen Namen einschließlich Zeitstempel für die Protokolldateien zu erzeugen.
Detaillierte Informationen zu all diesen Einstellungen finden Sie in der official documentation
.
Starten Sie den PostgreSQL-Dienst neu
Der letzte Schritt besteht darin, den PostgreSQL-Dienst neu zu starten, damit diese Einstellungen, insbesondere logging_collector
, wird wirksam. Die Durchführung eines Postgres-Neustarts unterscheidet sich von System zu System, aber normalerweise sieht der Befehl für ein Unix-System etwa so aus:
$ service postgresql restart
* Restarting PostgreSQL 9.3 database server [ OK ]
Überprüfen der Protokollerstellung
Sobald das System neu gestartet wurde, sollte die Protokollierung sofort beginnen. Um dies sicherzustellen, navigieren Sie zu data/pg_log
Verzeichnis Ihrer Postgres-Installation. Denken Sie daran, dass wir die data
erfasst haben Verzeichnispfad früher, navigieren Sie also einfach zu diesem Verzeichnis, indem Sie /pg_log
hinzufügen bis zum Ende, um in das Log-Verzeichnis zu gelangen:
$ cd /var/lib/postgresql/9.3/main/pg_log
Listen Sie nun die Dateien auf und Sie sollten sehen, dass nach dem vorherigen Dienstneustart eine Protokolldatei erstellt wurde:
$ ls -l
-rw------- 1 postgres postgres 935 Apr 13 20:30 postgresql-2016-04-13_203022.csv
Da haben wir es; automatisch generierte Protokolldateien werden mit PostgreSQL aktiviert, indem nur wenige Konfigurationseinstellungen geändert werden.