点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
安装审计组件
1 mysql> show variables like '%audit%';
2 +-------------------------------+-----------------------+
3 | Variable_name | Value |
4 +-------------------------------+-----------------------+
5 | server_audit_events | |
6 | server_audit_excl_users | |
7 | server_audit_file_path | server_audit.log |
8 | server_audit_file_rotate_now | OFF |
9 | server_audit_file_rotate_size | 1000000 |
10 | server_audit_file_rotations | 9 |
11 | server_audit_incl_users | |
12 | server_audit_loc_info | |
13 | server_audit_logging | OFF |
14 | server_audit_mode | 1 |
15 | server_audit_output_type | file |
16 | server_audit_query_log_limit | 1024 |
17 | server_audit_syslog_facility | LOG_USER |
18 | server_audit_syslog_ident | mysql-server_auditing |
19 | server_audit_syslog_info | |
20 | server_audit_syslog_priority | LOG_INFO |21 +-------------------------------+-----------------------+
1 SHOW GLOBAL VARIABLES LIKE 'plugin_dir';
2 cp server_audit.so mysql/app/mysql/lib/plugin
3 INSTALL PLUGIN server_audit SONAME 'server_audit.so';
4 show plugins;
配置组件
1 SET GLOBAL server_audit_logging=ON;
1 mkdir -p auditlog
2 chown -R mysql:mysql auditlog
3 chmod 750 auditlog
4 set global server_audit_file_path='/auditlog/server_audit.log';
1 set global server_audit_events='QUERY_DDL,QUERY_DCL' 不记录select查询操作,只记录增删 改、DDL操作。 2 set global server_audit_output_type= file 文件形式保存。 3 set global server_audit_logging = 1 开启。 4 set global server_audit_file_rotate_size =1073741824 单个日志大小(单位:字节),文件到 达该大小后,会自动切换。 5 set global server_audit_file_rotations = 3 日志保存数量。 6 set global server_audit_incl_users = '' 审计的在内用户,空则所有都记录。 7 set global server_audit_excl_users = '' 审计的不在内用户,空则所有都记录。 8 set global server_audit_query_log_limit = 4096 限制记录中查询字符串的长度。
1 [mysqld]
2 server_audit_logging=ON
3 server_audit_events=QUERY_DDL,QUERY_DCL
4 server_audit_output_type= file
5 server_audit_file_rotate_size =1073741824
6 server_audit_file_rotations = 3
7 server_audit_file_path=/auditlog/server_audit.log
8 server_audit=FORCE_PLUS_PERMANENT
skip-grant-tables
审计内容说明
[timestamp],[serverhost],[username],[host],[connectionid],[queryid],[operation], [database],[object],[retcode]
20231225 17:15:15,MYSQL57,root,localhost,5,75,QUERY,erp-log,'create table test_auditq(au_id int,event char(50))',0
timestamp 事件发生的时间。如果使用syslog,则格式由 syslogd 定义。 syslog_host 接收系统日志条目的主机。 syslog_ident 用于标识系统日志条目,包括MariaDB服务器。 syslog_info 用于提供标识系统日志条目的信息。 serverhost MariaDB服务器主机名。 username 连接的用户。 host 用户连接的主机。 connectionid 相关操作的连接标识号。 queryid 查询ID号,可用于查找关系表事件和相关查询。对于TABLE事件,将添加多行。 operation 记录的动作类型:CONNECT, QUERY, READ, WRITE, CREATE, ALTER, RENAME, DROP · database 活动数据库(由 USE 设置)。 object 对QUERY事件或TABLE事件的表名执行查询。 retcode 返回已记录操作的代码。
1 use test_db
2 create table test_auditqq(au_id int,event char(50));
3 tail -1000f /home/mysql/mysql57_3306/auditlog/server_audit.log

本文作者:陈 浩(上海新炬中北团队)
本文来源:“IT那活儿”公众号

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




