此配置使用審核日誌外掛程式,並使用 Syslog 將日誌傳送至 Guardium。
開始之前
此特性需要 MySQL 的「企業」版本。
程序
- 登入 MySQL 資料庫。
- 安裝審核日誌外掛程式,並驗證 my.cnf 檔案中的下列這兩行:
plugin-load = audit_log.so
audit_log_format=JSON
日誌檔為:/home/<os_user>/mysql/data/audit.log
- 重新啟動 mysql 常駐程式。
- 執行下列兩個 SQL,以安裝預設過濾器來取得每個日誌。
SELECT audit_log_filter_set_filter('log_all', '{ "filter": { "log": true }
}');
SELECT audit_log_filter_set_user('%', 'log_all');
-
配置遠端 Syslog。將下列這幾行新增至 /etc/rsyslog.conf:
#audit log
$ModLoad imfile
$InputFileName /home/mysql8_ent/mysql/data/audit.log
$InputFileTag mysql_audit_log:
$InputFileStateFile audit_log
$InputFileSeverity info
$InputFileFacility local6
$InputRunFileMonitor
其中:
- rsyslog 伺服器 IP 必須接在
local6 之後,例如:local6.*
@@<Guardium IP>:10514。請不要使用埠 5141,因為此埠與 MongoDB 預設配置衝突。
- 針對 UDP,使用
@<Guardium IP>:port_num。針對 TCP,使用 @@<Guardium
IP>:port_num。
例如:
local6.*
@@<gmachine_ip>:5000 ### To send to logstash using tcp
local6.*
@<gmachine_ip>:5142 ### To send to logstash using UDP