前言:

这几天系统用户突然登不上去了,不知道如何产生的原因,只能先修复好问题。为了定位问题,永久解决,所以需要安装审计插件,将mysql语句统一输出到文件中,方便分析解决问题。

环境说明:

CentOS 7,MySQL 5.7.30

参考资料:

https://mariadb.com/resources/blog/introducing-the-mariadb-audit-plugin/

一、下载安装MariaDB Audit Plugin插件

1、下载

下载地址:https://downloads.mariadb.org/mariadb/5.5.64/。

2、安装

1)查看 MySQL 插件地址

1
2
# 登陆mysql后,执行
mysql> show variables like '%plugin%';

输出地址为:/usr/lib64/mysql/plugin/ 。

2)获取 server_audit.os 文件

在上述压缩包中找到 server_audit.os 文件

3)将 server_audit.so 文件拷贝到 /usr/lib64/mysql/plugin/ 目录下。

4)执行插件安装操作

1
mysql> INSTALL PLUGIN server_audit SONAME 'server_audit.so';

5)验证

1
mysql> show variables like '%audit%';

二、开启审计日志功能

1、审计参数说明

  • server_audit_logging:启动或关闭审计
  • server_audit_file_path:审计日志位置
  • server_audit_events:指定记录事件的类型,可以用逗号分隔的多个值(connect,query,table) ,默认为空代表审计所有事件。
  • server_audit_incl_users:指定哪些用户的活动将记录,默认审计所有用户,该变量比 server_audit_excl_users 优先级高
  • server_audit_excl_users:指定哪些用户行为不记录
  • server_audit_output_type:指定日志输出类型,可为 SYSLOG 或 FILE ,缺省输出至审计文件
  • server_audit_file_rotate_size:日志文件大小,单位为 byte 。
  • server_audit_file_rotations:日志文件数量的最大值,默认为 9 个。

2、开始审计日志

1)临时开启并临时设置审计日志文件路径

1
2
3
4
mysql> set global server_audit_logging=on;
mysql> set global server_audit_file_path='/opt/audit/server_audit.log';
mysql> set GLOBAL server_audit_file_rotations=10;
mysql> set GLOBAL server_audit_file_rotate_size=1073741824;

服务一重启,则配置过期。

2)永久开启并设置审计日志文件路径

1
2
3
4
5
6
7
8
9
10
# 修改 mysql 配置文件:/etc/my.cnf
# 在[mysqld]标签下添加:
server_audit_logging=ON
server_audit_file_path=/opt/audit/server_audit111.log
server_audit=FORCE_PLUS_PERMANENT # 防止审计插件被卸载
server_audit_file_rotate_size=1G
server_audit_file_rotations=10

# 修改完配置文件后,记得重启 mysql 服务
service mysqld restart

3、查看审计日志文件

1
tail -f /opt/audit/server_audit111.log

ok了,如果问题复现,可以根据这个日志文件来定位分析问题。


点关注,不迷路

好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才

白嫖不好,创作不易。 各位的支持和认可,就是我创作的最大动力,我们下篇文章见!

如果本篇博客有任何错误,请批评指教,不胜感激 !