Il meccanismo di rotazione del registro interno di postgres può eliminare i file di registro più vecchi di un certo tempo?


9

Sto usando il meccanismo di rotazione del registro interno di Posgtres. Vorrei cancellare i file di registro più vecchi di 30 giorni. Come posso ottenere Postgres per farlo? Se Postgres non lo supporta, posso impostare logrotate in modo che elimini solo i log più vecchi di 30 giorni?

La mia configurazione attuale è:

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    

Risposte:


5

Non credo che il meccanismo di registrazione di Postgres supporti questo cleanup, ma sei assolutamente sicuro di cancellare vecchi log usando logrotate o un lavoro cron fintanto che non si scherza con il file di log attivo su cui Postgres sta scrivendo.

Per la registrazione di Postgres di solito preferisco accedere a syslog e lasciare che le normali procedure di rotazione del registro facciano la loro parte. Ciò presenta alcuni vantaggi, ma i due principali sono la capacità di utilizzare le procedure di rotazione dei registri standard (come logrotate) nello stesso modo in cui lo si fa per altri demoni e la possibilità che il demone syslog invii i registri a un host remoto, se è qualcosa che vuoi fare un giorno.

Altre opzioni sono discusse (anche se brevemente) nella sezione 23.3 del manuale di Postgres .


1

Se non stai usando syslog, puoi semplicemente eseguire il seguente script da cron e chiamarlo un giorno.

#!/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 {} \;

Non accedendo a syslog è anche possibile utilizzare strumenti come pgAdmin o pgFouine per visualizzare / analizzare i registri del database.


pgFouine è ciò che mi ha portato su questa strada. Puoi usare pgFouine da un registro syslog ma è più complicato farlo correttamente.
Freiheit,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.