Kann der interne Protokollrotationsmechanismus von postgres Protokolldateien löschen, die älter als eine bestimmte Zeit sind?


9

Ich verwende den internen Protokollrotationsmechanismus von posgtres. Ich möchte, dass Protokolldateien, die älter als 30 Tage sind, gelöscht werden. Wie bringe ich Postgres dazu? Wenn postgres dies nicht unterstützt, kann ich logrotate so einstellen, dass nur Protokolle gelöscht werden, die älter als 30 Tage sind?

Meine aktuelle Konfiguration ist:

log_destination = 'stderr'             
logging_collector = on
log_directory = 'pg_log'                
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' 
#log_truncate_on_rotation = off 
log_rotation_age = 1440         
log_rotation_size = 0    

Antworten:


5

Ich glaube nicht, dass der Postgres-Protokollierungsmechanismus diese Bereinigungen unterstützt, aber Sie sind absolut sicher, alte Protokolle mit logrotate oder einem Cron-Job zu löschen, solange Sie sich nicht mit der aktiven Protokolldatei herumschlagen, in die Postgres schreibt.

Für die Postgres-Protokollierung ziehe ich es normalerweise vor, mich bei syslog anzumelden und die normalen Protokollrotationsverfahren ihre Sache machen zu lassen. Dies hat einige Vorteile, aber die beiden großen sind die Möglichkeit, Ihre Standardprotokollrotationsverfahren (wie logrotate) wie bei anderen Daemons zu verwenden, und die Möglichkeit, dass Ihr Syslog-Daemon die Protokolle an einen Remote-Host sendet, wenn Das wollen Sie eines Tages tun.

Weitere Optionen werden (wenn auch nur kurz) in Abschnitt 23.3 des Postgres-Handbuchs erläutert .


1

Wenn Sie kein Syslog verwenden, können Sie einfach das folgende Skript von cron ausführen und es einen Tag lang aufrufen.

#!/bin/sh

HOME=/var/lib/pgsql
export HOME
PGDATA=/var/lib/pgsql/9.1/data
export PGDATA

/usr/bin/find $PGDATA/pg_log -type f -ctime +30 -name "*.log" -exec /bin/rm {} \;

Wenn Sie sich nicht bei syslog anmelden, können Sie auch Tools wie pgAdmin oder pgFouine verwenden, um die Datenbankprotokolle anzuzeigen / zu analysieren.


pgFouine hat mich auf diesen Weg geführt. Sie können pgFouine aus einem Syslog-Protokoll verwenden, aber es ist mehr Arbeit, um es richtig einzurichten.
Freiheit
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.