Журнал аудита
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.1 | false (отключено) |
| 3.1.2 и последующие выпуски 3.1.x | true (включено) |
| 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_sec | 60 секунд | Максимальный интервал между записями в таблицу журнала аудита. |
audit_plugin_max_batch_bytes | 50MB | Максимальный объём данных в одном пакете для таблицы журнала аудита. |
audit_plugin_max_sql_length | 4096 | Максимальная длина SQL-операторов, записываемых в таблицу журнала аудита. |
audit_plugin_load_timeout | 600 секунд | Время ожидания по умолчанию для заданий импорта журнала аудита. |
audit_plugin_max_insert_stmt_length | Int.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 |