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 #
Имя каталога, в котором будет создан файл аудита.
Область применения : Система
По умолчанию : 'журнал'
Пустое значение или 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_rotation_size #
Этот параметр определяет максимальный размер отдельного файла журнала. Включается только при явном указании параметра и добавляет микросекунды к текущей временной метке.
Область применения : Система
По умолчанию : 0
F.37.4.5. pgaudit.log_connections #
Перехватывает сообщения журнала сервера, генерируемые при включенной опции log_connections.
Область применения : Система
По умолчанию : выкл
Требуется : log_connections = включено
F.37.4.6. pgaudit.log_disconnections #
Перехватывает сообщения журнала сервера, генерируемые при включенной опции log_disconnections.
Область применения : Система
По умолчанию : выкл
Требуется : log_disconnections = включено
F.37.4.7. pgaudit.log_autoclose_minutes #
EXPERIMENTAL :: автоматически закрывает обработчик файла журнала аудита, хранящийся на сервере, после N минут бездействия.
Эта функция создает фоновый поток, который будет спать в фоновом режиме и закрывать обработчик файлов.
Область применения : Система
По умолчанию : 0
F.37.4.8. pgAudit Log To File - Формат записи #
Поддерживает только формат журнала 'csv'.
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, remote_client text NULL, remote_port 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, debug_query text NULL, cursor_pos int4 NULL, function_name text NULL, filename_linenum text NULL, application_name text NULL ) SERVER your_server OPTIONS (filename 'audit_log.csv', format 'csv');
F.37.4.9. Тест #
cd test vagrant plugin install vagrant-vbguest vagrant up