前言
- 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