Настройка журналов аудита в 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;