下载
我的MySQL版本是 5.7.37的,用的是日志审计插件(audit-plugin)是1.1.10的,大家可以对应自己版本去下载。
https://github.com/trellix-enterprise/mysql-audit/releases
配置
1、进入到/opt目录下载 audit,可以从本地下载完上传到你的linux系统中
cd /opt
wget --no-check-certificate https://github.com/trellix-enterprise/mysql-audit/releases/download/v1.1.10/audit-plugin-mysql-5.7-1.1.10-980-linux-x86_64.zip
2、解压缩
unzip audit-plugin-mysql-5.7-1.1.10-980-linux-x86_64.zip
3、找到你MySQL的安装插件目录
show global variables like 'plugin_dir';
4、复制安装相关插件包,执行相应以下命令
cp audit-plugin-mysql-5.7-1.1.10-980/lib/libaudit_plugin.so /usr/lib64/mysql/plugin/
chmod +x /usr/lib64/mysql/plugin/libaudit_plugin.so
chown mysql:mysql /usr/lib64/mysql/plugin/libaudit_plugin.so
5、登录到你的MySQL,安装 audit插件
install plugin audit soname 'libaudit_plugin.so';
如果出现错误,请看坑!
6、检验配置
show plugins;
7、检查版本
show global status like 'AUDIT_version';
8、开启临时的日志审计功能和其他设置(永久设置请看坑的配置)
开启audit功能
SET GLOBAL audit_json_file=ON;
查看audit配置,包括audit_json.txt存储路径
show variables like '%audit%'\G;
永久配置
如果你在配置中的第5步出现错误:
ERROR 1123 (HY000): Can't initialize function 'audit'; Plugin initialization function failed.
可以看本配置
1、找到mysqld
whereis mysqld
2、生成坐标,并且复制坐标,前两个字段不用复制!
./audit-plugin-mysql-5.7-1.1.10-980/utils/offset-extract.sh /usr/sbin/mysqld
3、找到MySQL配置文件
whereis my.cnf
4、修改SQL配置文件并加入以下配置
# 审计offsets 不要乱配置
audit_offsets=7832, 7880, 3640, 4800, 456, 360, 0, 32, 64, 160, 544, 7996, 4368, 3648, 3656, 3660, 6080, 2072, 8, 7064, 7104, 7088, 13480, 148, 672, 0
# 审计操作命令
audit_record_cmds='select,insert,delete,update,create,drop,alter,grant,truncate'
# 审计开关
audit_json_file=on
# 加载审计第三方库
plugin-load=AUDIT=libaudit_plugin.so
# 审计日志路径
audit_json_log_file=/var/log/mysql_audit.json
5、保存重启MySQL。
systemctl mysql restart
6、再次进入到MySQL进行安装 audit 插件
install plugin audit soname 'libaudit_plugin.so';
如果还报错!还有ERROR 1123 (HY000): Can't initialize function 'audit'; Plugin initialization function failed.
这个错,那么就看下面的坑!
坑
网上都是shi!
垃圾csdn,翻来翻去都是相同的帖子,都他妈复制过来复制过去的,一点脑子也不带!
后来去的GitHub中找到了解决问题,解决问题很简单,只需要关闭当前Linux系统中的selinux
即可。
从github上老外回答问题上找到了解决方法:https://github.com/trellix-enterprise/mysql-audit/issues/157
1、查看 是否开启
sestatus
2、临时关闭,重新启动系统后,此设置将消失。
echo 0 > /selinux/enforce
或者
setenforce 0
3、永久性关闭,重启后不会失效
cat /etc/selinux/config
接下来修改配置文件中的selinux选项,修改为disabled。
保存重启后再次查看状态
文章参考:https://baijiahao.baidu.com/s?id=1730368050174256968&wfr=spider&for=pc