前言:
这几天系统用户突然登不上去了,不知道如何产生的原因,只能先修复好问题 。为了定位问题,永久解决,所以需要安装审计插件,将MySQL语句统一输出到文件中,方便分析解决问题 。
环境说明:
centos 7,MySQL 5.7.30
参考资料:一、下载安装MariaDB Audit Plugin插件1、下载下载地址:https://downloads.mariadb.org/mariadb/5.5.64/ 。
https://mariadb.com/resources/blog/introducing-the-mariadb-audit-plugin/
2、安装1)查看 MySQL 插件地址
# 登陆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)执行插件安装操作
mysql> INSTALL PLUGIN server_audit SONAME 'server_audit.so';
5)验证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 个 。
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;
【MySQL 安装 MariaDB Audit Plugin 插件,实现审计日志输出】服务一重启,则配置过期 。2)永久开启并设置审计日志文件路径
# 修改 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 restart3、查看审计日志文件
tail -f /opt/audit/server_audit111.log
文章插图
ok了,如果问题复现,可以根据这个日志文件来定位分析问题 。
推荐阅读
- MySQL使用规范手册,程序员必知必会
- Centos7.5下安装oracle 11gR2
- 无语了,直到今天,我才揪出MySQL磁盘消耗迅猛的“真凶”
- IIS+MySQL+PHP+Phpmyadmin配置Web站点之Mysql安装
- Centos7 搭建LTMP环境PHP、Tengine、Mysql、Supervisord、Redis
- 深入理解PHP+Mysql分布式事务与解决方案
- 网红幽灵门好不好,该如何安装
- 家用太阳能电池板原理和安装
- 为CentOS 8配置本地Yum/DNF存储库,飞一样的下载安装
- Centos7 使用 Ansible 批量安装中文字体