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