MySQL之MariaDB啓用審計插件

對於MySQL Percona MariaDB三家都有自己的審計插件,但是呢,MySQL的審計插件是隻有企業版纔有的,同時也有很多第三方的的MySQL的審計插件,而Percona和MariaDB都是GPL的審計插件

首先看一下mariaDB 的審計插件

[root@Linux_Aolens_01 /usr/local/mysql]# mysql -uroot -ppassword
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 42804
Server version: 10.0.14-MariaDB-log Source distribution
Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show variables like '%audit%';
Empty set (0.00 sec)
MariaDB [(none)]> INSTALL PLUGIN server_audit SONAME 'server_audit.so'; #安裝審計插件
Query OK, 0 rows affected (0.18 sec)
MariaDB [(none)]> show variables like '%audit%';
+-------------------------------+-----------------------+
| Variable_name | Value |
+-------------------------------+-----------------------+
| server_audit_events | |
| server_audit_excl_users | |
| server_audit_file_path | server_audit.log |
| server_audit_file_rotate_now | OFF |
| server_audit_file_rotate_size | 1000000 |
| server_audit_file_rotations | 9 |
| server_audit_incl_users | |
| server_audit_logging | OFF |
| server_audit_mode | 0 |
| server_audit_output_type | file |
| server_audit_syslog_facility | LOG_USER |
| server_audit_syslog_ident | mysql-server_auditing |
| server_audit_syslog_info | |
| server_audit_syslog_priority | LOG_INFO |
+-------------------------------+-----------------------+
14 rows in set (0.00 sec)
MariaDB [(none)]> SHOW VARIABLES LIKE 'plugin_dir'; #插件地址路徑
+---------------+------------------------------ -----+
| Variable_name | Value |
+---------------+------------------------------ +
| plugin_dir | /usr/local/mysql/lib/plugin/ |
+---------------+-----------------------------------+
1 row in set (0.00 sec)

如果想永久加載,只需在配置文件裏指定如下行即可,此時卸載該插件時會報錯,插件將無法卸載,直到配置文件變更

[mysqld]
plugin-load=server_audit=server_audit.so
server_audit=FORCE_PLUS_PERMANENT

命令行啓用audit ,重啓後失效

MariaDB [(none)]> set global server_audit_file_rotate_size=1024*1024*1024;
Query OK, 0 rows affected (0.01 sec)
 
MariaDB [(none)]> set global server_audit_events='query,table';
Query OK, 0 rows affected (0.00 sec)
 
MariaDB [(none)]> set global server_audit_file_rotate_now=on;
Query OK, 0 rows affected (0.00 sec)
 
MariaDB [(none)]> set global server_audit_logging='ON';
Query OK, 0 rows affected (0.00 sec)

爲了使MySQL重啓設置的變量仍然生效,需要在配置文件添加相應配置:

[mysqld]
server_audit_events='CONNECT,QUERY,TABLE'
server_audit_logging=on
server_audit_file_rotate_size=2000000
server_audit_file_rotations=10

查看審計日誌:

[root@Linux_Aolens_01 ~]# tail -n 20 /mydata/data/server_audit.log

wKioL1izjhDygLwJAAPILiARNzU698.png

參數說明:

  • 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:標識版本,用於開發測試

MYSQL 添加審計功能:

wget https://dl.bintray.com/mcafee/mysql-audit-plugin/:audit-plugin-mariadb-10.0-1.1.0-625-linux-x86_64.zip
unzip audit-plugin-mariadb-10.0-1.1.0-625-linux-x86_64.zip
cd audit-plugin-mariadb-10.0-1.1.0-625/lib
mysql -uroot -p -e "show global variables like 'plugin_dir';"
'plugin_dir', '/usr/local/mysql/lib/plugin/'
#拷貝插件到mysql的插件目錄
cp libaudit_plugin.so /usr/local/mysql/lib/plugin/'
#安裝審計插件
mysql -uroot -p -e "INSTALL PLUGIN AUDIT SONAME 'libaudit_plugin.so';"

其他配置和MariaDB一樣

MariaDB審計插件變量解釋:https://mariadb.com/kb/en/mariadb/server_audit-system-variables/#server_audit_events

MariaDB審計插件介紹:https://mariadb.com/kb/en/mariadb/about-the-mariadb-audit-plugin/

Percona的審計插件:https://www.percona.com/blog/2014/05/07/mysql-audit-plugin-now-available-in-percona-server-5-5-and-5-6/

https://www.percona.com/doc/percona-server/5.6/management/audit_log_plugin.html

MySQL的審計插件:https://dev.mysql.com/doc/refman/5.5/en/audit-log-installation.html

第三方的MySQL審計插件:https://github.com/mcafee/mysql-audit


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章