mysql5.7安装server_audit审计

一、部署环境

mysql版本:5.7.27
系统:centos7
CPU:1核
内存:1G

二、查看插件安装目录

mysql> show global variables like 'plugin_dir';
+---------------+------------------------------+
| Variable_name | Value                        |
+---------------+------------------------------+
| plugin_dir    | /usr/local/mysql/lib/plugin/ |
+---------------+------------------------------+

二、提取mariadb审计插件并放置插件目录

(版本并不通用,自行根据版本号提取,这里就没总结了)

wget  https://downloads.mariadb.com/MariaDB/mariadb-10.5.16/bintar-linux-x86_64/mariadb-10.5.16-linux-x86_64.tar.gz
tar -zxvf   mariadb-10.5.3-linux-x86_64.tar.gz
cp ./mariadb-10.5.3-linux-x86_64/lib/plugin/server_audit.so /usr/local/mysql/lib/plugin/
chmod +x /usr/local/mysql/lib/plugin/server_audit.so

三、mysql安装server_audit.so插件

mysql>  install plugin server_audit soname 'server_audit.so';
Query OK, 0 rows affected (0.02 sec)           
##也可以在my.cnf 加载插件方式安装
在my.cnf 设置 plugin_load = server_audit=server_audit.so  

查看当前MySQL插件情况

mysql>  show plugins;
| SERVER_AUDIT                             | ACTIVE   | AUDIT              | server_audit.so       | GPL     |

四、新建 auditlogs 目录,并更改所属的组和用户

mkdir /opt/mysqldata/auditlogs
chown -R mysql:mysql /opt/mysqldata/auditlogs

五、开启审计,写入配置文件

#防止server_audit 插件被卸载 进行配置文件配置
server_audit=FORCE_PLUS_PERMANENT
#指定哪些操作被记录到日志文件中
server_audit_events='CONNECT,QUERY,TABLE,QUERY_DDL'
#开启审计功能
server_audit_logging=on
#默认存放路径,可以不写,默认到data文件下
server_audit_file_path=/opt/mysqldata/auditlogs
#设置文件大小 默认1000000,1073741824=1GB
server_audit_file_rotate_size=1073741824
#指定日志文件的数量,如果为0日志将从不轮转
server_audit_file_rotations=0

重启mysql生效!

/etc/init.d/mysql restart
Shutting down MySQL............... SUCCESS! 
Starting MySQL.. SUCCESS! 

如不便重启mysql,

临时开启  mysql>set global server_audit_logging=on;
临时关闭  mysql>set global server_audit_logging=off;
set global server_audit_file_rotate_size=1073741824;
set global server_audit_file_rotations=0;
set global server_audit_file_path='/opt/mysqldata/auditlogs/server_audit.log';
set global server_audit_events='CONNECT,QUERY,TABLE,QUERY_DDL';

六、验证

查看server_audit插件参数

mysql> show variables like '%audit%';
+-------------------------------+-------------------------------------------+
| Variable_name                 | Value                                     |
+-------------------------------+-------------------------------------------+
| server_audit_events           | CONNECT,QUERY,TABLE,QUERY_DDL             |
| server_audit_excl_users       |                                           |
| server_audit_file_path        | /opt/mysqldata/auditlogs/server_audit.log |
| server_audit_file_rotate_now  | OFF                                       |
| server_audit_file_rotate_size | 1073741824                                |
| server_audit_file_rotations   | 0                                         |
| server_audit_incl_users       |                                           |
| server_audit_loc_info         |                                           |
| server_audit_logging          | ON                                        |
| server_audit_mode             | 1                                         |
| server_audit_output_type      | file                                      |
| server_audit_query_log_limit  | 1024                                      |
| server_audit_syslog_facility  | LOG_USER                                  |
| server_audit_syslog_ident     | mysql-server_auditing                     |
| server_audit_syslog_info      |                                           |
| server_audit_syslog_priority  | LOG_INFO                                  |
+-------------------------------+-------------------------------------------+

测试查看日志

tail /opt/mysqldata/server_audit.log 
20230726 15:25:27,localhost.localdomain,slave,192.168.2.22,3,15,QUERY,,'SELECT @master_binlog_checksum',0
20230726 15:25:27,localhost.localdomain,slave,192.168.2.23,2,16,QUERY,,'SELECT @@GLOBAL.SERVER_UUID',0
20230726 15:25:27,localhost.localdomain,slave,192.168.2.23,2,17,QUERY,,'SET @slave_uuid= \'9c54b402-26ed-11ee-a1ac-000c2981a3ba\'',0
20230726 15:25:27,localhost.localdomain,slave,192.168.2.22,3,18,QUERY,,'SELECT @@GLOBAL.GTID_MODE',0
20230726 15:25:27,localhost.localdomain,slave,192.168.2.22,3,19,QUERY,,'SELECT @@GLOBAL.SERVER_UUID',0
20230726 15:25:27,localhost.localdomain,slave,192.168.2.22,3,20,QUERY,,'SET @slave_uuid= \'9d8e7365-26ec-11ee-ada1-000c291d69c1\'',0
20230726 15:33:04,localhost.localdomain,root,localhost,4,0,CONNECT,,,0
20230726 15:33:04,localhost.localdomain,root,localhost,4,23,QUERY,,'select @@version_comment limit 1',0
20230726 15:33:06,localhost.localdomain,root,localhost,4,24,QUERY,,'show variables like \'%audit%\'',0
20230726 15:45:22,localhost.localdomain,root,localhost,4,25,QUERY,,'show global variables like \'datadir\'',0

七、参数说明

server_audit_events :指定记录事件的类型,可以用逗号分隔的多个值
server_audit_excl_users : 该列表的用户[行为]将不记录,connect信息将不受该设置影响
server_audit_file_path :使用该变量设置存储日志的文件,可以指定目录,默认存放在数据目录的server_audit.log文件中
server_audit_file_rotate_now :知否立即切割日志
server_audit_file_rotate_size :限制日志文件的大小
server_audit_file_rotations :指定日志文件的数量,如果为0日志将从不轮转
server_audit_incl_users : 指定哪些用户的活动将记录,connect将不受此变量影响,该变量比server_audit_excl_users优先级高
server_audit_loc_info :
server_audit_logging :启动或关闭审计ON/OFF
server_audit_mode :标识版本,用于开发测试
server_audit_output_type :指定日志输出类型,可为SYSLOG或FILE,当为syslog时记录到/var/log/messages
server_audit_query_log_limit :1024
server_audit_syslog_facility :LOG_USER
server_audit_syslog_ident :mysql-server_auditing
server_audit_syslog_info :
server_audit_syslog_priority :LOG_INFO

重点说明 server_audit_events

省略值全部事件类型都会记录到审计日志中,可选择事件类型才记录。

如 server_audit_events = query,table,query_ddl,query_dml

事件类型

CONNECT:连接、断开连接和失败的连接,包括错误代码

QUERY:以纯文本形式执行的查询及其结果,包括由于语法或权限错误而失败的查询

TABLE:受查询执行影响的表

QUERY_DDL:与QUERY相同,但只筛选DDL类型的查询(create、alter、drop、rename和truncate语句,create/drop[procedure/function/user]和rename user除外(它们不是DDL)

QUERY_DML:与QUERY相同,但只筛选DML类型的查询(do、call、load data/xml、delete、insert、select、update、handler和replace语句)

QUERY_DCL:与QUERY相同,但只筛选DCL类型的查询(create user、drop user、rename user、grant、revoke和set password语句)

QUERY_DML_NO_SELECT:与QUERY_DML相同,但不记录SELECT查询。(从1.4.4版开始)(do、call、load data/xml、delete、insert、update、handler和replace语句)

注意:

  1. 如果开启了查询缓存(query cache),查询直接从查询缓存返回数据,将没有table记录

  2. 由于除了DDL和DML之外还有其他类型的查询,因此将查询DDL和查询DML选项一起使用并不等同于使用查询。
    从Audit插件的1.3.0版开始,有用于记录查询的DCL类型(例如GRANT和REVOKE语句)的QUERY_DCL选项。
    在同一版本中,添加了server_audit_query_log_limit变量,以便能够设置日志记录的长度。
    以前,由于查询字符串较长,日志条目将被截断。

八、卸载审计插件

如my.cnf 有相关配置,先清空重启再卸载。

mysql>  UNINSTALL PLUGIN server_audit;
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值