F.37. Запись журнала pgAudit в файл#

F.37. Запись журнала pgAudit в файл

F.37. Запись журнала pgAudit в файл #

F.37.1. О pgauditlogtofile #

Версия: 1.6.2

GitHub

F.37.2. Описание #

pgAudit Log to File - это дополнение к pgAudit, которое будет перенаправлять строки журнала аудита в независимый файл, вместо использования серверного журнала PostgreSQL.

Это позволит нам иметь файл аудита, который можно легко переключать без загрязнения журналов сервера этими сообщениями.

Аудиторские журналы в системах с высокой нагрузкой могут очень быстро расти. Это расширение позволяет автоматически вращать файлы на основе заданного количества минут.

F.37.3. Установка #

  1. Добавьте pgauditlogtofile в "shared_preload_libraries" в postgresql.conf.

  2. Перезапустите PostgreSQL, чтобы перезагрузить новую общую библиотеку

  3. Создайте расширение в базе данных 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