×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

3.9.3. Обслуживание файлов журналов

Рекомендуется сохранять выходные данные журнала сервера базы данных, а не просто отбрасывать их через /dev/null. Вывод в журнал имеет неоценимое значение при диагностике возникающих проблем.

Примечание

Журнал сервера может содержать конфиденциальную информацию и должен быть защищен независимо от способа и места его хранения, а также от того, куда направляется его вывод. Например, некоторые SQL-инструкции DDL могут содержать пароли в открытом виде или иные данные аутентификации. Записываемые в журнал инструкции на ERROR уровне могут содержать исходный код SQL-запросов приложений, а также части строк данных. Регистрация данных, событий и сопутствующей информации является целевой функцией данного механизма, поэтому это не считается утечкой данных или ошибкой. Пожалуйста, убедитесь, что журналы сервера доступны только лицам, имеющим соответствующие полномочия.

Объем вывода в журнал может быть весьма значительным (особенно на высоких уровнях отладки), поэтому его не следует хранить бесконечно. Вам необходимо выполнять ротацию файлов журналов, чтобы создавались новые файлы журналов, а старые удалялись по истечении определенного периода времени.

Если вы просто перенаправите поток stderr процесса postgres в файл, вы получите вывод журнала, однако единственным способом очистки файла журнала будет остановка и перезапуск сервера. Это может быть допустимо при использовании Digital Q.DataBase в среде разработки, но для большинства производственных серверов такое поведение неприемлемо.

Более подходящим подходом является передача stderr вывода сервера какой-либо программе ротации журналов. В системе предусмотрен встроенный механизм ротации журналов, который можно задействовать, установив параметр конфигурации logging_collector в значение true в postgresql.conf. Управляющие параметры для данного механизма описаны в Раздел 3.4.8.1. Данный подход также можно использовать для сохранения данных журнала в машиночитаемом CSV формате (значения, разделенные запятыми).

Кроме того, вы можете использовать внешнюю программу ротации журналов, если она уже применяется для другого серверного программного обеспечения. Например, rotatelogs инструмент, входящий в состав Apache дистрибутива, может использоваться с Digital Q.DataBase. Одним из способов реализации этого является перенаправление stderr стандартного вывода сервера в соответствующую программу. Если запуск сервера выполняется с помощью pg_ctl, то stderr уже перенаправлен в stdout, и достаточно использовать команду конвейера, например:

pg_ctl start | rotatelogs /var/log/pgsql_log 86400

Данные подходы можно комбинировать, настроив logrotate для обработки файлов журналов, создаваемых Digital Q.DataBase встроенным сборщиком сообщений журнала. В этом случае сборщик сообщений журнала определяет имена и расположение файлов журналов, тогда как logrotate периодически архивирует эти файлы. При инициировании ротации журналов, logrotate необходимо обеспечить перенаправление последующего вывода приложения в новый файл. Обычно это реализуется при помощи postrotate скрипта, отправляющего SIGHUP сигнал приложению, которое затем повторно открывает файл журнала. В Digital Q.DataBase, можно запустить pg_ctl с параметром logrotate вместо этого. При получении этой команды сервер либо переключается на новый файл журнала, либо повторно открывает существующий файл в зависимости от настроек ведения журнала (см. Раздел 3.4.8.1).

Примечание

При использовании статических имен файлов журналов сервер может не открыть файл журнала повторно, если достигнут лимит открытых файлов или произошло переполнение таблицы файлов. В этом случае сообщения журнала будут записываться в старый файл до успешного завершения ротации. Если logrotate настроен на сжатие и последующее удаление файла журнала, сервер может потерять сообщения, записанные в этот промежуток времени. Во избежание данной проблемы можно настроить сборщик сообщений журнала на динамическое назначение имен файлов и использовать prerotate сценарий для игнорирования открытых файлов журналов.

Другим подходом промышленного уровня к управлению выводом журналов является их передача в службу syslog с последующим использованием механизмов syslog для ротации файлов. Для этого установите параметр конфигурации log_destination в значение syslog (для ведения журнала только через syslog ) в файле postgresql.conf. После чего вы сможете отправлять SIGHUP сигнал демону syslog в любой момент, когда требуется принудительно начать запись в новый файл журнала. Для автоматизации ротации журналов logrotate программа может быть настроена для работы с файлами журналов syslog.

Однако во многих системах механизм syslog не отличается высокой надежностью, особенно при передаче объемных сообщений журнала; он может обрезать или отбрасывать сообщения именно тогда, когда они наиболее важны. Кроме того, в Linux, syslog будет выполнять принудительный сброс каждого сообщения на диск, что приведет к низкой производительности. (Для отключения синхронизации можно использовать символ «-» в начале имени файла в syslog конфигурационном файле).

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

pgBadger представляет собой внешний проект для углубленного анализа файлов журналов. check_postgres обеспечивает отправку оповещений в Nagios при появлении в файлах журналов критически важных сообщений, а также позволяет выявлять различные нештатные ситуации.

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению