Blog

Blog

Où sont mes logs (la suite) ?

Dans l'article Où sont mes logs je vous avais indiqué comment trouver les logs d'une instance PostgreSQL qui utilise le log collector (paramètre log_collector =on).
Mais que se passe-t-il si le log collector n'est pas activé ?

Stderr

Restons dans le cas par défaut où les logs sont envoyés sur stderr. Il s'agit du cas par défaut car la valeur par défaut du paramètre log_destination est stderr.
Ce n'est plus forcément la meilleure valeur, mais j'espère avoir le temps d'un autre article pour parler de ça...

Pid

Pour pouvoir trouver où sont vos logs, vous allez devoir récupérer le pid de votre process postgres principal.
Voici deux manières de le faire:
  1. Comme un ingénieur système
    ps -ef | grep postgres
    postgres 5109 1 0 16:25 ? 00:00:00 /usr/lib/postgresql/9.6/bin/postgres -D /var/lib/postgresql/9.6/main -c config_file=/etc/postgresql/9.6/main/postgresql.conf
    postgres 5116 5109 0 16:25 ? 00:00:00 postgres: checkpointer process 
    postgres 5117 5109 0 16:25 ? 00:00:00 postgres: writer process 
    postgres 5134 5109 0 16:25 ? 00:00:00 postgres: wal writer process 
    postgres 5135 5109 0 16:25 ? 00:00:00 postgres: autovacuum launcher process 
    postgres 5136 5109 0 16:25 ? 00:00:00 postgres: archiver process  last was 00000008.history
    postgres 5137 5109 0 16:25 ? 00:00:00 postgres: stats collector process
  2. Comme un DBA
    SELECT pg_backend_pid();
    pg_backend_pid
    ----------------
    5109
    (1 row)
    

Trouver les logs

Une fois le PID récupéré, vous trouverez les logs dans le répertoire /proc/<PID>/fd/2.
C'est là que vous verrez éventuellement si la sortie d'erreur est redirigée.
Par exemple sur un postgreSQL lancé avec le wrapper perl pg_ctlcluster, vous trouverez ceci:
sudo ls -l /proc/5109/fd/2
l-wx------ 1 postgres postgres 64 May 10 18:35 /proc/5109/fd/2 -> /var/log/postgresql/postgresql-9.6-main.log

Pour en savoir plus 

La documentation officielle prévoit une page complète sur le reporting d'erreur et le logging. https://www.postgresql.org/docs/9.6/static/runtime-config-logging.html