Перейти к содержимому
Последнее обновление

Журнал аудита

Doris предоставляет возможности аудита операций с базой данных, позволяя регистрировать входы пользователей, запросы и операции изменения данных. В Doris журналы аудита можно просматривать непосредственно через встроенные системные таблицы или в файлах журналов аудита Doris.

Включение журналов аудита​

Начиная с версии 2.1.0 в Doris встроен плагин журнала аудита, который не требует отдельной установки. Глобальная переменная enable_audit_plugin определяет, записываются ли журналы аудита в __internal_schema.audit_log. Её значение по умолчанию зависит от версии Doris:

Версия DorisЗначение enable_audit_plugin по умолчанию
2.1.x, 3.0.x, 3.1.0 и 3.1.1false (отключено)
3.1.2 и последующие выпуски 3.1.xtrue (включено)
4.0.0 и последующие выпускиtrue (включено)

Плагин журнала аудита включён по умолчанию в версии 3.1.2 и последующих выпусках 3.1.x. Он также включён по умолчанию в версии 4.0.0 и последующих выпусках. В этих версиях значение enable_audit_plugin по умолчанию равно true.

Проверьте текущее значение в своём кластере:

SHOW GLOBAL VARIABLES LIKE 'enable_audit_plugin';

Если оно равно false, плагин можно включить в любой момент:

SET GLOBAL enable_audit_plugin = true;

После включения Doris записывает последующие журналы аудита в __internal_schema.audit_log.

Чтобы отключить запись в таблицу журнала аудита:

SET GLOBAL enable_audit_plugin = false;

Отключение плагина останавливает запись новых данных в __internal_schema.audit_log, сохраняя существующие записи. Эта переменная не управляет файлами fe.audit.log, описанными ниже.

Просмотр таблицы журнала аудита​

Примечание

В версиях до 2.1.8 при обновлении системы количество полей в таблице журнала аудита могло увеличиваться. После обновления необходимо добавить поля в таблицу audit_log с помощью команды ALTER TABLE в соответствии с составом полей таблицы журнала аудита.

Начиная с версии Doris 2.1, после включения функции аудита Doris может записывать действия пользователей в таблицу audit_log в базе данных __internal_schema.

Таблица журнала аудита использует динамическое партиционирование. По умолчанию партиции создаются по дням и хранят данные за последние 30 дней. Срок хранения динамических партиций можно настроить, изменив свойство dynamic_partition.start с помощью оператора ALTER TABLE.

Файлы журналов аудита​

В fe.conf параметр LOG_DIR задаёт путь хранения журналов FE. Все операции с базой данных, выполняемые этим узлом FE, записываются в ${LOG_DIR}/fe.audit.log. Чтобы просмотреть все операции в кластере, необходимо просмотреть журналы аудита каждого узла FE.

Формат журнала аудита​

В версиях до 3.0.7 символы \n, \t и \r в операторах заменялись на \\n, \\t и \\r. Затем изменённые операторы сохранялись в файле fe.audit.log и таблице audit_log.

Начиная с версии 3.0.7, при записи в файл fe.audit.log в операторах заменяется только \n на \\n. В таблице audit_log сохраняется исходный формат операторов.

Настройка журнала аудита​

Глобальные переменные:

Переменные журнала аудита можно изменять с помощью set [global] <var_name> = <var_value>.

ПеременнаяЗначение по умолчаниюОписание
audit_plugin_max_batch_interval_sec60 секундМаксимальный интервал между записями в таблицу журнала аудита.
audit_plugin_max_batch_bytes50MBМаксимальный объём данных в одном пакете для таблицы журнала аудита.
audit_plugin_max_sql_length4096Максимальная длина SQL-операторов, записываемых в таблицу журнала аудита.
audit_plugin_load_timeout600 секундВремя ожидания по умолчанию для заданий импорта журнала аудита.
audit_plugin_max_insert_stmt_lengthInt.MAXМаксимально допустимая длина операторов INSERT. Если значение превышает audit_plugin_max_sql_length, используется значение audit_plugin_max_sql_length. Этот параметр поддерживается начиная с версии 3.0.6.

Некоторые операторы INSERT INTO VALUES могут быть очень длинными и часто отправляться, что приводит к чрезмерному увеличению размера журнала аудита. Поэтому в версии 3.0.6 в Doris был добавлен параметр audit_plugin_max_insert_stmt_length, который отдельно ограничивает длину записей аудита для операторов INSERT. Это предотвращает разрастание журнала аудита и обеспечивает полный аудит SQL-операторов.

Параметры конфигурации FE:

Параметры конфигурации FE можно изменить, отредактировав fe.conf.

Параметр конфигурацииОписание
skip_audit_user_listЕсли вы не хотите, чтобы операции определённых пользователей записывались в журналы аудита, измените этот параметр (поддерживается начиная с версии 3.0.01). Например, чтобы исключить операции пользователей user1 и user2 из журнала аудита, задайте: skip_audit_user_list=user1,user2