在 MySQL 上配置審核日誌,並透過 Syslog 轉遞至 Guardium

此配置使用審核日誌外掛程式,並使用 Syslog 將日誌傳送至 Guardium。

開始之前

此特性需要 MySQL 的「企業」版本。

程序

  1. 登入 MySQL 資料庫。
  2. 安裝審核日誌外掛程式,並驗證 my.cnf 檔案中的下列這兩行:
    plugin-load = audit_log.so
    audit_log_format=JSON
    日誌檔為:/home/<os_user>/mysql/data/audit.log
  3. 重新啟動 mysql 常駐程式。
  4. 執行下列兩個 SQL,以安裝預設過濾器來取得每個日誌。
    SELECT audit_log_filter_set_filter('log_all', '{ "filter":   { "log": true }
                    }');
    SELECT audit_log_filter_set_user('%', 'log_all');
  5. 配置遠端 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

下一步

在收集器上啟用通用連接器。在收集器上啟用 Guardium 通用連接器.