測試用服務器配置:dell r730; 24核; 64g內存; ssd磁盤。
Centos版本:6.4; MySQL版本:Community 5.6.12;測試數據庫大小:24G。
sysbench 參數:64線程 10表,每個表預先初始化好一千萬數據,讀寫混合OLTP模式。和mysql跑在同一臺機器上。
測試時長:5分鐘/場景。
?
未安裝插件
OLTP?test?statistics: queries?performed: read:?15377012 write:?4393432 other:?2196716 total:?21967160 transactions:?1098358?(3661.01?per?sec.) read/write?requests:?19770444?(65898.21?per?sec.) other?operations:?2196716?(7322.02?per?sec.) ignored?errors:?0?(0.00?per?sec.) reconnects:?0?(0.00?per?sec.)
?
Mcafee插件 官網地址:https://github.com/mcafee/mysql-audit/wiki
使用版本:v1.0.9
安裝
INSTALL?PLUGIN?AUDIT?SONAME?'libaudit_plugin.so';
啟用
set?global?audit_json_file=1;
停用
set?global?audit_json_file=0;
重啟mysql
插件不會卸載,不會啟用記錄日志。
卸載
直接執行UNINSTALL PLUGIN AUDIT;卸載會報錯: Uninstall AUDIT plugin disabled。
同時發現 Variable ‘audit_uninstall_plugin’ is a read only variable
需要在my.cnf中添加audit_uninstall_plugin=1,重啟mysql。
重啟完畢后 執行兩次 UNINSTALL PLUGIN AUDIT; 可以卸載。
卸載完成后需要從my.cnf中刪除audit_uninstall_plugin=1 ,否則下次mysql啟動會報錯:[ERROR] /data/mysql/bin/mysqld: unknown variable ‘audit_uninstall_plugin=1’
日志格式:json
{"msg-type":"activity","date":"1484795122970","thread-id":"557","query-id":"61687115","user":"root","priv_user":"root","ip":"127.0.0.1","cmd":"select", "objects":[{"db":"sysbench_test","name":"sbtest7","obj_type":"TABLE"}],"query":"SELECT?c?FROM?sbtest7?WHERE?id=5015211"}
只會記錄操作成功的日志
OLTP?test?statistics: queries?performed: read:?8376872 write:?2393392 other:?1196696 total:?11966960 transactions:?598348?(1994.38?per?sec.) read/write?requests:?10770264?(35898.81?per?sec.) other?operations:?1196696?(3988.76?per?sec.) ignored?errors:?0?(0.00?per?sec.) reconnects:?0?(0.00?per?sec.)
?
?
Mariadb 插件 官網地址:https://mariadb.com/kb/en/mariadb/about-the-
使用版本:1.1.7
安裝
INSTALL?PLUGIN?server_audit?SONAME?'server_audit.so';
啟用
set?global?server_audit_logging=1; set?global?server_audit_file_rotate_size=1073741824;?set?global?server_audit_file_rotations=4;
停用
set?global?server_audit_logging=0;
重啟mysql
插件不會卸載,不會啟用記錄日志。 但是所有參數會重置,再次啟用的時候需要執行需要的參數配置。
卸載
UNINSTALL?PLUGIN?server_audit;
卸載插件無須重啟mysql。
日志格式:固定格式文本
20170119?10:39:19,localhost.localdomain,root,127.0.0.1,375,8330400,QUERY,sysbench_test,'SELECT?c?FROM?sbtest5?WHERE?id=5037936',0
所有操作都會記錄。可以記錄SQL注入。
OLTP?test?statistics: queries?performed: read:?9098362 write:?2599532 other:?1299766 total:?12997660 transactions:?649883?(2166.16?per?sec.) read/write?requests:?11697894?(38990.84?per?sec.) other?operations:?1299766?(4332.32?per?sec.) ignored?errors:?0?(0.00?per?sec.) reconnects:?0?(0.00?per?sec.)
?
?
小結:
mcafee的審計插件:
性能下降約46%,產生日志3.0G
卸載插件需要重啟一次mysql。插件沒有自動滾動,需要另外部署清理任務,會有清理任務失敗導致的磁盤空間不夠的風險,拉取日志到其他服務器分析與清理任務有協調困難,清理任務會有一定耦合性。
mariadb的審計插件:
性能下降約41%,產生1864M日志。
性能略好于mcafee的插件。 審計日志有自動滾動。卸載方便。 兼容性方面5.6.12的版本測試不適配1.1.7以上版本,使用的話MySQL守護進程會無限重啟mysql,官方說是1.2.0以上版本要在MySQL5.6.17以上版本使用,使用前要先測試。
percona的審計插件:
沒有適配5.6.17以前版本的,暫未做測試。
以上就是MySQL審計插件的測試(mcafee和mariadb版本)詳情介紹的內容,更多相關內容請關注PHP中文網(www.php.cn)!