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

Содержание

Введние

Для отслеживания операций с базами данных MySQL можно воспользоваться плагином audit_log. Этот плагин позволяет отслеживать операции подключения, отключения пользователей, выполняемые ими запросы. Информацию обо всех этих операциях плагин умеет писать в журналы в формате XML.

Установка плагина

Для установки плагина без перезапуска сервера можно выполнить запрос:

INSTALL PLUGIN audit_log SONAME 'audit_log.so';

После установки плагина начнётся запись журнала аудита в файл /var/lib/mysql/audit.log. Настроить положение файла можно с помощью опции audit_log_file, но, к сожалению, её значение нельзя поменять как глобальную переменную. Для настройки придётся воспользоваться файлом конфигурации и перезапустить MySQL.

Другие настройки, которые показались мне полезными - это максимальный размер файла журнала перед его ротацией audit_log_rotate_on_size и количество журналов в ротации audit_log_rotations. Эти настройки можно поменять в процессе работы MySQL через глобальные переменные.

Для настройки загрузки плагина при запуске MySQL я прописал следующие опции в файл /etc/mysql/percona-server.conf.d/mysqld.cnf:

plugin_load_add = audit_log.so
audit_log_file = /var/log/mysql/audit.log
audit_log_rotate_on_size = 100M
audit_log_rotations = 10

Только таким образом возможно настроить путь к файлу журнала аудита. После этого остаётся перезапустить MySQL, чтобы его настройки вступили в силу:

# systemctl restart mysql

Удаление плагина

Для удаления плагина без перезапуска MySQL можно воспользоваться таким запросом:

UNINSTALL PLUGIN audit_log;

Использованные материалы