Mysql MariaDB server_audit.so

前言

  • MariaDB和MySQL在广泛的环境中使用,但是如果您需要记录用户访问权限以符合组织的审计法规,则以前必须使用其他数据库解决方案。为了满足此需求,MariaDB开发了MariaDB审计插件。尽管MariaDB审核插件具有一些仅适用于MariaDB的独特功能,但它也可以与MySQL一起使用。
  • 基本上,MariaDB Audit Plugin的目的是记录服务器的活动。对于每个客户端会话,它记录谁连接到服务器(即用户名和主机),执行了哪些查询,访问了哪些表以及更改了服务器变量。此信息存储在循环日志文件中,或者可以发送到本地syslogd
  • percona,mcafee,mariadb都有提供审计插件

下载MariaDB

yum install wget -y && wget https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.5.3/bintar-linux-x86_64/mariadb-10.5.3-linux-x86_64.tar.gz

或者在我的CSDN 下载

解压MariaDB获取server_audit.so可用于mysql

  • /mariadb-10.5.3-linux-x86_64.tar.gz/mariadb-10.5.3-linux-x86_64/lib/plugin 目录下server_audit.so拷贝到/usr/lib64/mysql/plugin

查看插件安装目录 

mysql> show global variables like 'plugin_dir';
+---------------+--------------------------+
| Variable_name | Value                    |
+---------------+--------------------------+
| plugin_dir    | /usr/lib64/mysql/plugin/ |
+---------------+--------------------------+
1 row in set (0.01 sec)

 赋予权限server_audit.so

chmod +x /usr/lib64/mysql/plugin/server_audit.so

安装server_audit.so插件

mysql>install plugin server_audit soname 'server_audit.so';
Query OK, 0 rows affected, 1 warning (1.72 sec)

 写入配置文件

  • vim /etc/my.cnf 
plugin_load_add = server_audit.so
server_audit_logging = ON
server_audit = FORCE_PLUS_PERMANENT
server_audit_file_rotate_now = ON
server_audit_events ='query_dml,query_ddl'

重启mysql服务

systemctl restart mysqld

 查看server_audit.so插件安装情况

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

查看可以配置的一些信息

mysql> SHOW GLOBAL VARIABLES LIKE '%audi%';

 默认日志目录

mysql> show global variables like 'datadir';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| datadir       | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.00 sec)

查看是否开启

mysql> SHOW GLOBAL VARIABLES LIKE "server_audit%";

参数说明:

  • server_audit_output_type:指定日志输出类型,可为SYSLOG或FILE
  • server_audit_logging:启动或关闭审计
  • server_audit_events:指定记录事件的类型,可以用逗号分隔的多个值(connect,query,table),如果开启了查询缓存(query cache),查询直接从查询缓存返回数据,将没有table记录
  • server_audit_file_path:如server_audit_output_type为FILE,使用该变量设置存储日志的文件,可以指定目录,默认存放在数据目录的server_audit.log文件中
  • server_audit_file_rotate_size:限制日志文件的大小
  • server_audit_file_rotations:指定日志文件的数量,如果为0日志将从不轮转
  • server_audit_file_rotate_now:强制日志文件轮转
  • server_audit_incl_users:指定哪些用户的活动将记录,connect将不受此变量影响,该变量比server_audit_excl_users优先级高
  • server_audit_syslog_facility:默认为LOG_USER,指定facility
  • server_audit_syslog_ident:设置ident,作为每个syslog记录的一部分
  • server_audit_syslog_info:指定的info字符串将添加到syslog记录
  • server_audit_syslog_priority:定义记录日志的syslogd priority
  • server_audit_excl_users:该列表的用户行为将不记录,connect将不受该设置影响
  • server_audit_mode:标识版本,用于开发测试

  monyog 开启审核日志

  • server_audit.so 日志目录/var/lib/mysql/server_audit.log 
  • audit libaudit_plugin 配合此模块使用,获取信息比较的,日志文件比较大)日志目录/var/lib/mysql/web.log

monyog审核统计相关信息

命令行查看

tail -f /var/lib/mysql/server_audit.log

猜你喜欢

转载自blog.csdn.net/hanzheng260561728/article/details/106782483