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:
- 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
- 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