F.37. Запись журнала pgAudit в файл#
F.37. Запись журнала pgAudit в файл #
F.37.2. Описание #
pgAudit Log to File
является
дополнением к pgAudit, которое будет перенаправлять строки аудита в независимый файл, вместо использования регистратора сервера PostgreSQL.
Это позволит нам иметь файл аудита, который можно легко переключать без загрязнения журналов сервера этими сообщениями.
Аудиторские журналы в системах с интенсивным использованием могут расти очень быстро. Это расширение позволяет автоматически вращать файлы на основе количества минут.
F.37.3. Установка #
Добавьте
pgauditlogtofile
в "shared_preload_libraries" вpostgresql.conf
.Перезапустите PostgreSQL, чтобы перезагрузить новую общую библиотеку
Создать расширение в базе данных postgres (например, pgaudit, нам не нужно создавать его во всех базах данных)
postgres=# CREATE EXTENSION pgauditlogtofile;
F.37.4. Конфигурация #
F.37.4.1. pgaudit.log_directory #
Имя каталога, в котором будет создан файл аудита.
Область применения: Система
По умолчанию: 'log'
Пустое значение или NULL отключат расширение, и аудит будет выполняться в журнале сервера PostgreSQL.
F.37.4.2. pgaudit.log_filename #
Имя файла, в который будет записываться аудит. Запись в существующий файл будет добавлять новые записи. Эта переменная может содержать временные шаблоны до минуты, чтобы обеспечить автоматическую ротацию.
Область применения: Система
По умолчанию: 'audit-%Y%m%d_%H%M.log'
Пустое значение или NULL отключат расширение, и аудит будет выполняться в журнале сервера PostgreSQL.
F.37.4.3. pgaudit.log_rotation_age #
Число минут, после которого файл аудита будет повернут.
Область применения: Система
По умолчанию: 1440 минут (1 день)
Замечания по производительности:
Если
log_rotation_age < 60
, фоновый рабочий процесс ротации будет просыпаться каждые 10 секунд.Если
log_rotation_age > 60
, фоновый рабочий процесс ротации будет просыпаться каждую 1 минуту.
F.37.4.4. pgaudit.log_connections #
Перехватывает сообщения журнала сервера, когда log_connections включен.
Область применения: Система
По умолчанию: выкл
Требуется: log_connections = on
F.37.4.5. pgaudit.log_disconnections #
Перехватывает сообщения журнала сервера, когда log_disconnections включен.
Область применения: Система
По умолчанию: выкл
Требуется: log_disconnections = on
F.37.4.6. pgaudit.log_autoclose_minutes #
ЭКСПЕРИМЕНТАЛЬНО: автоматически закрывает обработчик файла аудита, удерживаемый сервером, после N минут бездействия.
Эта функция создает фоновый поток, который будет спать в фоновом режиме и закрывать обработчик файлов.
Область применения: Система
По умолчанию: 0
F.37.4.7. pgAudit Log To File - Формат записи #
CREATE FOREIGN TABLE pgauditlogtofile_extern ( ----fields from postgresql session---- log_time timestamptz(3) NULL, user_name text NULL, database_name text NULL, process_id int4 NULL, connection_from text NULL, session_id text NULL, session_line_num int8 NULL, command_tag text NULL, session_start_time timestamptz NULL, virtual_transaction_id text NULL, transaction_id int8 NULL, sql_state_code text NULL, -----fields from pgaudit record------- audit_type text NULL, statement_id text NULL, substatement_id text NULL, "class" text NULL, command text NULL, object_type text NULL, object_name text NULL, "statement" text NULL, "parameter" text NULL, ----additional fields-------- detail text NULL, hint text NULL, internal_query text NULL, internal_query_pos int4 NULL, context text NULL, query text NULL, query_pos int4 NULL, file_error_location text NULL, application_name text NULL ) SERVER your_server OPTIONS (filename 'audit_log.csv', format 'csv');
F.37.4.8. Тест #
cd test vagrant plugin install vagrant-vbguest vagrant up