Как посмотреть логи PostgreSQL в Linux | PGLens.

Как посмотреть логи PostgreSQL в Linux

В Linux расположение логов зависит от дистрибутива и настройки сбора. В сборках Debian и Ubuntu файлы по умолчанию лежат в /var/log/postgresql/, в сборках на базе RHEL – в подкаталоге log внутри каталога данных. Если сбор логов выключен, вывод перехватывает systemd.

Как определить расположение

  1. Запросите активные значения прямо из базы:
    SHOW logging_collector;
    
    SHOW log_directory;
    
    SHOW data_directory;
  2. При logging_collector = on собранные логи находятся в log_directory: относительный путь отсчитывается от каталога данных, абсолютный используется как есть.
  3. При logging_collector = off вывод идет в systemd. Имя юнита зависит от дистрибутива – в RHEL это postgresql, в Debian и Ubuntu юнит именуется по кластеру:
    journalctl -u postgresql@16-main
  4. Для чтения активного файла в реальном времени используйте стандартные средства:
    tail -f /var/log/postgresql/postgresql-16-main.log

Что учесть

Каталог с логами принадлежит пользователю postgres, поэтому для доступа нужны его права или sudo. Файлы подчиняются ротации (штатной или через logrotate), поэтому старые записи со временем архивируются или удаляются.

Логи в файловой системе подчиняются ротации и очищаются при переустановке кластера – тогда, когда нужно восстановить хронологию инцидента, их часто уже нет. PGLens накапливает детальную статистику работы вашей СУБД в отдельной базе, поэтому историческая динамика нагрузки и аннотации событий остаются доступны и после удаления файлов.

Проверьте PGLens
на своих данных

Подключите PGLens к своим экземплярам и получите структурированную картину нагрузки вместо разрозненных данных из логов и системных представлений.

  • Картина нагрузки по подключенным экземплярам в динамике
  • Ранжированный список самых тяжелых запросов
  • Моделирование индексов с расчетом выигрыша в стоимости запроса

    * - обязательные поля

    Напишите нам
    Удобнее с телефона?
    Сканируйте QR