暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Percona审计插件在MySQL 8.0中的实战应用心得

IT那活儿 2025-07-01
315

点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!


  
在MySQL的日常运维中,安全审计是一个非常重要的需求。MySQL社区版并没有自带的安全审计工具,因此我们需要借助第三方插件来实现审计功能。Percona Server 提供了一个开源的审计插件(Percona Audit Log Plugin),能够帮助我们监控和记录数据库的操作行为。

本文将详细介绍如何在MySQL 8.0版本中安装、配置和使用Percona Server的审计插件。




简介

Percona Audit Log Plugin 是Percona Server自带的一个插件,支持记录数据库的连接、查询、表操作等事件。
与MariaDB Audit Plugin类似,Percona的审计插件也支持日志轮转、日志格式自定义等功能。


安装步骤

2.1 下载Percona Server
通过下面链接下载并解压Percona Server:
https://downloads.percona.com/downloads/Percona-Server-8.0/Percona-Server-8.0.40-31/binary/tarball/Percona-Server-8.0.40-31-Linux.x86_64.glibc2.28.tar.g
将audit plugin拷贝至MySQL8.0对应的目录。
对插件进行赋权:
chmod 755 audit_log.so
启动MySQL服务:
sudo systemctl start mysqld
sudo systemctl enable mysqld

2.2 安装Percona Audit Log Plugin
Percona Audit Log Plugin 已经包含在Percona Server中,我们只需要通过SQL语句启用即可。
登录MySQL:
mysql -u root -p
安装审计插件:
INSTALLPLUGIN audit_log SONAME'audit_log.so';
验证插件是否安装成功:
SELECT PLUGIN_NAME, PLUGIN_STATUS 
FROM INFORMATION_SCHEMA.PLUGINS 
WHERE PLUGIN_NAME = 'audit_log';

如果返回结果中 PLUGIN_STATUS 为 ACTIVE,则表示插件安装成功。


配置审计插件

Percona Audit Log Plugin 提供了多个配置参数,可以通过以下步骤进行配置:
3.1 查看审计插件的参数
SHOWVARIABLESLIKE'audit_log%';
3.2 配置审计日志路径
默认情况下,审计日志会存储在MySQL的数据目录下,文件名为 audit.log。可以通过以下命令修改日志路径:
SETGLOBAL audit_log_file = '/var/log/mysql/audit.log';
3.3 配置日志轮转
Percona Audit Log Plugin 支持日志轮转功能,可以通过以下命令配置日志轮转的大小和保留的文件数量:
SETGLOBAL audit_log_rotate_on_size = --104857600; 100MB
SETGLOBAL audit_log_rotations = --10; 保留10个日志文件

3.4 启用审计日志
SETGLOBAL audit_log_policy = 'ALL';-- 记录所有事件


测试审计功能

4.1 执行一些SQL操作
CREATEDATABASE test_audit;
USE test_audit;
CREATETABLE test_table (idINTnameVARCHAR(100));
INSERTINTO test_table VALUES (1'Alice');
SELECT * FROM test_table;

4.2 查看审计日志
审计日志会记录所有的操作,可以通过以下命令查看日志内容:
cat /var/log/mysql/audit.log
日志内容会包含每个操作的详细信息,例如:
{
  "timestamp""2023-10-01T12:00:00Z",
  "user""root",
  "host""localhost",
  "ip""127.0.0.1",
  "command""Query",
  "query""CREATE DATABASE test_audit"
}



卸载审计插件

如果需要卸载审计插件,可以通过以下步骤进行卸载:
5.1 卸载插件
UNINSTALLPLUGIN audit_log;
5.2 验证插件是否卸载成功
SELECT PLUGIN_NAME, PLUGIN_STATUS 
FROM INFORMATION_SCHEMA.PLUGINS 
WHERE PLUGIN_NAME = 'audit_log';

如果返回结果为空,则表示插件已成功卸载。
注意事项:
  • 权限问题
    安装和配置审计插件需要管理员权限,确保使用具有足够权限的用户进行操作。
  • 日志路径
    确保配置的日志路径具有写入权限,避免因权限问题导致日志无法写入。
  • 日志轮转
    合理配置日志轮转的大小和保留的文件数量,避免日志文件过大或过多占用磁盘空间。
  • 性能影响
    审计日志会记录所有操作,可能会对数据库性能产生一定影响,建议根据实际需求调整审计策略。
  • 插件卸载
    如果需要卸载插件,确保在卸载前备份相关配置和日志,避免数据丢失。
总 结:
通过Percona Audit Log Plugin,我们可以轻松实现MySQL 8.0的审计功能,记录数据库的操作行为,帮助管理员进行安全审计和故障排查。

END


本文作者:若 晗(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论