¿Puede el mecanismo de rotación de registro interno de postgres eliminar archivos de registro anteriores a un tiempo determinado?

9

Estoy usando el mecanismo de rotación de registro interno de posgtres. Me gustaría que se eliminen los archivos de registro de más de 30 días. ¿Cómo consigo postgres para hacer esto? Si postgres no lo admite, ¿puedo configurar logrotate para que simplemente elimine registros de más de 30 días?

Mi configuración actual es:

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    
Freiheit
fuente

Respuestas:

5

No creo que el mecanismo de registro de Postgres sea compatible con estas limpiezas, pero es perfectamente seguro eliminar registros antiguos utilizando logrotate o un trabajo cron siempre que no se meta con el archivo de registro activo en el que Postgres está escribiendo.

Para el registro de Postgres, generalmente prefiero iniciar sesión en syslog y dejar que los procedimientos normales de rotación de registros hagan lo suyo. Esto tiene algunas ventajas, pero las dos más importantes son la capacidad de usar sus procedimientos estándar de rotación de registros (como logrotate) de la misma manera que lo hace con otros demonios y la capacidad de que su demonio syslog envíe los registros a un host remoto, si Eso es algo que quieres hacer algún día.

Otras opciones se discuten (aunque brevemente) en la sección 23.3 del manual de Postgres .

voretaq7
fuente
1

Si no está utilizando syslog, puede ejecutar el siguiente script desde cron y llamarlo un día.

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

Al no iniciar sesión en syslog, también puede usar herramientas como pgAdmin o pgFouine para ver / analizar los registros de la base de datos.

gsiems
fuente
pgFouine es lo que me llevó por este camino. Puede usar pgFouine desde un registro de syslog, pero es más difícil configurarlo correctamente.
Freiheit el