1. 插件说明

原来在mysql5.7.33版本中,使用server_audit.so插件审计日志插件(来源MariaDB )无问题,但从5.7.34版本开始,该插件停止使用,针对5.7.34及之后的版本,现使用另外开源插件audit-plugin实现审计日志

之前server_audit.so插件使用可参考博文 https://blog.csdn.net/d1240673769/article/details/112389574

开源mysql5.7审计插件:audit-plugin-mysql-5.7 下载地址:audit-plugin-mysql-5.7

mysql 环境:

2. 安装步骤

(1)登录MySQL,执行以下命令获取MySQL的plugin目录:

SHOW GLOBAL VARIABLES LIKE '%plugin_dir%';

如下图:

(2) 将下载到的插件安装包 audit-plugin-mysql-5.7.zip 上传到服务器中,并解压

unzip audit-plugin-mysql-5.7.zip

(3)进入解压后的目录,将该目录中的lib/libaudit_plugin.so文件复制到mysql插件目录中,并赋权:

cd lib/libaudit_plugin.so /data/mysql/lib/plugin/
chmod +x /data/mysql/lib/plugin/libaudit_plugin.so
chown -R mysql:mysql /data/mysql/lib/plugin/libaudit_plugin.so

(4)进入mysql插件安装包解压后的目录,对 utils目录下的offset-extract.sh 赋执行权限,然后使用这个命令执行 mysqld:

chmod +x utils/offset-extract.sh
./utils/offset-extract.sh /data/mysql/bin/mysqld

如下图:

(5)将上一步执行结果中的最后一行数字复制出来(图中蓝框中部分),即:

7832, 7880, 3640, 4800, 456, 360, 0, 32, 64, 160, 544, 7996, 4368, 3648, 3656, 3660, 6080, 2072, 8, 7064, 7104, 7088, 13480, 148, 672, 0

(6)编辑mysql配置文件/etc/my.cnf,在配置文件中 [mysqld] 部分最后添加下列信息:

plugin-load=AUDIT=libaudit_plugin.so
audit_json_file=ON
audit_force_record_logins=ON
audit_record_cmds='insert,delete,update,create,drop,alter,grant,truncate,select'
audit_json_log_file=/data/mysql/data/mysql-audit.json
audit_offsets=7832, 7880, 3640, 4800, 456, 360, 0, 32, 64, 160, 544, 7996, 4368, 3648, 3656, 3660, 6080, 2072, 8, 7064, 7104, 7088, 13480, 148, 672, 0

(7)重新登录mysql,然后执行以下安装命令:

install plugin audit soname 'libaudit_plugin.so';

如下图,则表示插件安装成功:

(8)安装成功后,会生成审计日志文件,该文件默认位于 mysql安装目录下的 data目录中,日志文件名为 mysql-audit.json

3 其他

(1)查看审计插件的版本号

show global status like 'AUDIT_version';


(2)查看插件有哪些可配置参数

show variables like '%audit%'\G;


(3)参数配置
参考地址:https://github.com/mcafee/mysql-audit/wiki/Configuration

  • audit_json_log_file : json 日志文件名。如果启用了 audit_json_file 选项,则会将审计跟踪写入此文件。值可以是绝对路径或相对于 MySQL 数据目录。默认值:mysql-audit.json。

  • audit_json_file : json 日志文件 ON|OFF。

  • audit_json_file_sync:json 日志文件同步周期。如果此变量的值大于 0,则每次 audit_json_file_sync 写入后,审计日志将同步到磁盘。默认值:0。

  • audit_json_file_flush:调用set global audit_json_file_flush=on
    将导致日志文件刷新(关闭并重新打开日志)。这可用于类似于 MySQL 管理其日志文件的方式轮换日志。请参阅:http : dev.mysql.com/doc/refman/5.5/en/log-file-maintenance.html。如需进一步说明,请参阅问题#140。

  • audit_json_socket_name : json UNIX 套接字名称。如果启用了 audit_json_socket 选项,则会将审计跟踪写入此 UNIX 套接字。

  • audit_json_socket : json UNIX 套接字开|关。

  • audit_json_socket_write_timeout:提供写入 json 套接字的超时(以毫秒为单位)。当前值为 1000(= 1 秒)。零值禁用超时。目前,由于内部 MySQL API,最小实际超时为 1000 毫秒。(如果您提供较小但非零的值,则将其四舍五入。)我们希望未来的版本将提供更短的超时。在 1.1.3 版中引入。

  • audit_uninstall_plugin:审计卸载插件 ON|OFF(仅限命令行/conf 文件)。如果禁用,尝试通过 sql UNINSTALL 命令卸载 AUDIT 插件将失败。通过卸载插件提供额外的安全性。还可以防止CVE-2010-1621影响版本高达 5.1.46。

  • audit_validate_checksum : mysqld 二进制校验和验证 ON|OFF。请参阅安装页面中的故障排除部分。

  • audit_checksum:要验证的 mysqld 校验和(仅限命令行/conf 文件)。当存在 audit_offsets 时使用。如果指定的校验和与计算的不匹配,插件将不会加载。当手动设置偏移量并且您希望避免在升级 mysqld 后未经验证而使用手动偏移量时,这很有用。

  • audit_record_cmds:以逗号分隔的命令列表,用于记录到审计跟踪。例如:insert,update,delete。

  • audit_record_objs:要记录到审计跟踪的对象(表)的逗号分隔列表。表名应指定为:database.table

    • 支持通配符,并且可以指定:.mytablemydb.
    • 指定:{}
      作为列表的一部分以包含空集以捕获活动没有对象的情况(例如连接和退出)。
  • audit_whitelist_users:未记录查询的白名单用户的逗号分隔列表。指定:{}
    作为列表的一部分包含空用户。

  • audit_whitelist_cmds:未记录查询的白名单 cmds 的逗号分隔列表。在 1.0.6 版中引入。

  • audit_force_record_logins:强制日志记录:连接、退出和登录失败命令,无论audit_record_cmds 和audit_record_objs 变量中的设置如何。开|关。默认值:关。在 1.0.8 版中引入。

  • audit_header_msg:标头消息记录 ON|OFF。默认值:开。在 1.0.6 版中引入。

  • audit_password_masking_cmds:将应用密码屏蔽正则表达式的逗号分隔命令列表。默认值包括可能包含密码子句的 MySQL 命令:CREATE_USER,GRANT,SET_OPTION,SLAVE_START,CREATE_SERVER,ALTER_SERVER,CHANGE_MASTER
    . 在 1.0.6 版中引入。

  • audit_password_masking_regex:用于密码屏蔽的符合 PCRE 的正则表达式。正则表达式将仅应用于具有在以下位置指定的命令类型的语句:audit_password_masking_cmds 在 1.0.6 版引入。

  • audit_json_file_retry : json 日志文件重试间隔。如果插件无法打开/写入 json 日志文件,将以秒为单位重试打开每个指定的时间间隔。设置为 0 以禁用重试。默认为 60 秒。在 1.0.6 版中引入。

  • audit_json_socket_retry : json 套接字重试间隔。如果插件无法连接/写入 json 审计套接字,将重试连接每个指定的时间间隔(以秒为单位)。设置为 0 以禁用重试。默认为 10 秒。在 1.0.6 版中引入。

  • audit_json_file_bufsize:用于日志记录的 json 文件缓冲区大小(以字节为单位)。值 0 表示默认大小,值 1 表示无缓冲。最大值:262144 (256KB)。在记录大型语句(大于 4KB 的日志条目)时,较大的值可能会提高性能。默认为 0。如果在运行时需要更改,则执行刷新以使新值生效。默认为开。在 1.0.8 版中引入。

  • audit_client_capabilities:如果启用,插件将客户端功能位图的值作为无符号 64 位值发送。默认为关闭。在 1.1.1 版中引入。

  • audit_sess_connect_attrs:如果启用,插件会发送会话连接属性。默认为开。目前仅在 MySQL 5.6 和 5.7 上受支持。在 1.1.1 版中引入。注意:连接属性的日志记录还需要 MySQL 5.6 及更高版本的客户端才能连接到服务器。连接属性是在 5.6 中作为通信协议的一部分添加的。启用后,表单的 json 条目将添加到每个日志条目中:“connect_attrs”:{“_os”:“Linux”,“_client_name”:“libmysql”,“_pid”:“11450”,“_client_version”:“5.6.20-68.0”,“_platform”:“x86_64”,“program_name”:“mysql”}
    . 有关 MySQL 中连接属性的更多信息,请参阅:https : dev.mysql.com/doc/refman/5.6/en/performance-schema-connection-attribute-tables.html。

  • audit_socket_creds:如果启用,插件会发送有关客户端进程的信息,例如 PID、应用程序名称和拥有它的用户名。默认为开。在 1.1.2 版中引入。

  • audit_before_after:控制插件是在执行当前 SQL 语句之前还是之后写入其日志记录,或两者兼而有之。可能的值’before’ ,‘after’ 或’both’ 。默认为’after’ 。在 1.1.2 版中引入。

mysql5.7安装审计日志插件audit-plugin相关推荐

  1. Doris之审计日志插件

    审计日志插件 Doris 的审计日志插件是在 FE 的插件框架基础上开发的.是一个可选插件.用户可以在运行时安装或卸载这个插件. 该插件可以将 FE 的审计日志定期的导入到指定 Doris 集群中,以 ...

  2. MySQL5.7安装半同步插件报错,错误码1126

    MySQL5.7安装半同步插件报错,错误码1126 mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; ...

  3. centos安装审计日志

    centos安装audit审计日志 安装: 直接使用yum进行安装auditd系列程序: yum -y install audit auditd-libs 相关命令: 1.auditctl : 即时控 ...

  4. 从零开始在window10系统下mysql5.7安装审计插件(亲测绝对可用)

  5. 审计文件的作用以及记录的内容,审计日志的记录,以及审计日志包括的内容

    对DBA(数据库管理员)而言,审计就是记录数据库中正在作什么的过程. 审计文件的作用 审计功能把用户对数据库的所有操作自动记录下来,放入审计日志中,审计员可以利用审计日志监控数据库中的各种行为,重现导 ...

  6. 审计日志在分布式系统中的应用

    前言 分布式系统的执行环境往往是异常复杂的,很多情况涉及到多节点间的消息通信.相比较于单节点系统而言,分布式系统在问题追踪,排查方面显然也复杂很多.那么这个时候,在分布式系统中,增加哪些类型的日志数据 ...

  7. mysql 5.02审计_CentOS 7.2 mysql-5.7.17 审计插件安装、开启与设定

    最近因为一些事情的发生,出现了好端端的页面,变成了空页面.转头开发同事就来质问我,是不是我动了什么,后来经过调查发现,是平台运营的同事误删资料导致的. 所以如果运维或者开发部门有很多人都分配了数据库的 ...

  8. centos 7.2 mysql 允许_CentOS 7.2 mysql-5.7.17 审计插件安装、开启与设定

    最近因为一些事情的发生,出现了好端端的页面,变成了空页面.转头开发同事就来质问我,是不是我动了什么,后来经过调查发现,是平台运营的同事误删资料导致的. 所以如果运维或者开发部门有很多人都分配了数据库的 ...

  9. vim 离线安装_VIM学习笔记 插件列表(Plugin)

    由于zhihu的垃圾编辑器不支持表格,请查看以下完整格式: http://yyq123.github.io/learn-vim/learn-vim-plugin.html 说明: 本列表完全基于作者的 ...

最新文章

  1. Oracle For Linux安装脚本
  2. IIS 网站服务器性能优化指南
  3. 技术分享:几种常见的JavaScript混淆和反混淆工具分析实战【转】
  4. UA MATH564 概率论VI 数理统计基础3 卡方分布上
  5. C++ Primer 5th笔记(chap 17 标准库特殊设施)随机数发生器种子( seed)
  6. 脚本必须位于html的,js 前端第三剑客
  7. RavenDb学习(十)附件,存储大对象
  8. 【ArcGIS遇上Python】使用add-in向导开发ArcGIS插件(1):add-in工具介绍及安装
  9. 麒麟810处理器_麒麟810性能实测:对比骁龙845骁龙730,谁更强?
  10. html form int,is_int, is_numeric, is_float, and HTML form validation
  11. matlab 基本变量和函数
  12. java定时器异常,定时任务异常 高手进
  13. 学习.NET是因为热爱 or 兴趣 or 挣钱?
  14. JavaScript——BOM知识
  15. Oracle 客户端安装 + pl/sql工具安装配置
  16. 电视hdr测试软件,HDR是什么意思 如何打开电视机的HDR10模式
  17. 2021年中国计算机视觉产业及其重点企业分析(商汤科技VS旷视科技VS依图科技VS云从科技)[图]
  18. 全国职业院校技能大赛(中职组)网络安全竞赛试题—解析
  19. 纯色图片颜色渐变动画
  20. java license机制dll_LicenseJava.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家...

热门文章

  1. 【C++】之内联函数(inline)
  2. C++ 在图片上打印文字并保存图片
  3. 连自律都做不到 还谈什么梦想
  4. mysql主从复制(一):一主多从
  5. vue中单选框设置默认选中值
  6. 微信小程序:40029错误(invalid code)
  7. 国内外php主流开源cms汇总(2010年1月)
  8. archmanjaro添加black arch及cn源
  9. NMS(Non-Maximum Suppression,非极大值抑制)解析
  10. SSR解决了什么问题?