使用 Linux syslog 工具來管理 Oracle ASM 審計記錄是一個很好的解決方案,通過使用作業系統的 syslog 工具來代替單獨的 audit_dump_dest 目錄來記錄 Oracle ASM 審計記錄。
如果不對 Oracle ASM 執行個體的審計檔案目錄進行定期維護那麼它将會包含大量的審計檔案。如果存在大理審計檔案可能會造成檔案系統耗盡磁盤空間或 indoes,或者由于檔案系統擴充限制而造成 Oracle 運作緩慢,還有可能造成Oracle ASM 執行個體在啟動時 hang 住。
1、對Oracle ASM執行個體設定audit_syslog_level與audit_sys_operations參數SQL>show parameter audit_sys_
NAME TYPE VALUE
---------------------------- -------------- ------------
audit_sys_operations boolean TRUE
audit_syslog_level string
SQL> alter system set AUDIT_SYSLOG_LEVEL='local0.info' scope=spfile sid='*';
System altered.
SQL>
由于 audit_sys_operations 參數預設為 TRUE,是以此處不再進行設定
2、為 Oracle ASM 審計配置 /etc/syslog.conf 通過執行以下兩處改變來對 Oracle ASM 審計配置 syslog 的配置檔案 /etc/rsyslog.conf
- 在 /etc/rsyslog.conf 檔案中增加以下内容 local0.info /var/log/oracle_asm_audit.log
- 在 /etc/rsyslog.conf 檔案中的 /var/log/messages 這一行增加 local0.none,修改後的配置如下:
*.info;mail.none;authpriv.none;cron.none;local0.none /var/log/messages
[root@cs1 ~]# vi /etc/rsyslog.conf
....省略....
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
local0.info /var/log/oracle_asm_audit.log
*.info;mail.none;authpriv.none;cron.none;local0.none /var/log/messages
3、配置logrotate來管理syslog日志檔案Linux的logrotate工具被用來管理Oracle ASM審計的syslog日志檔案的大小與數量,建立檔案 /etc/logrotate.d/oracle_asm_audit,并向檔案增加以下内容:
/var/log/oracle_asm_audit.log {
weekly
rotate 4
compress
copytruncate
delaycompress
notifempty
}
4、重新開機 Oracle ASM 執行個體與 rsyslog 服務
- 為了使用這些改變生效必須重新開機 Oracle ASM 執行個體與 rsyslog 服務。可以使用 crsctl stop cluster -all 與 crsctl start cluster -all 在任何一個 RAC 節點上執行來重新開機 Oracle ASM 執行個體,這個操作會将資料庫執行個體也關閉。
- 執行 systemctl restart rsyslog 指令來重新開機rsyslog服務
驗證
驗證日志輸出可以看到Oracle ASM審計記錄已經被記錄到了/var/log/oracle_asm_audit.log 檔案中。
[root@node1 ~]# tail -f /var/log/oracle_asm_audit.log
May 9 07:02:33 node1 journal: Oracle Audit[1510]: LENGTH : '241' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[4] 'grid' CLIENT TERMINAL:[5] 'pts/0' STATUS:[1] '0' DBID:[0] '' SESSIONID:[10] '4294967295' USERHOST:[5] 'node1' CLIENT ADDRESS:[0] '' ACTION NUMBER:[3] '100'
May 9 07:02:35 node1 journal: Oracle Audit[1561]: LENGTH : '241' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[4] 'grid' CLIENT TERMINAL:[5] 'pts/0' STATUS:[1] '0' DBID:[0] '' SESSIONID:[10] '4294967295' USERHOST:[5] 'node1' CLIENT ADDRESS:[0] '' ACTION NUMBER:[3] '100'
May 9 07:02:35 node1 journal: Oracle Audit[1580]: LENGTH : '241' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[4] 'grid' CLIENT TERMINAL:[5] 'pts/0' STATUS:[1] '0' DBID:[0] '' SESSIONID:[10] '4294967295' USERHOST:[5] 'node1' CLIENT ADDRESS:[0] '' ACTION NUMBER:[3] '100'
May 9 07:02:35 node1 journal: Oracle Audit[1586]: LENGTH : '241' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[4] 'grid' CLIENT TERMINAL:[5] 'pts/0' STATUS:[1] '0' DBID:[0] '' SESSIONID:[10] '4294967295' USERHOST:[5] 'node1' CLIENT ADDRESS:[0] '' ACTION NUMBER:[3] '100'
May 9 07:02:37 node1 journal: Oracle Audit[1645]: LENGTH : '241' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[4] 'grid' CLIENT TERMINAL:[5] 'pts/0' STATUS:[1] '0' DBID:[0] '' SESSIONID:[10] '4294967295' USERHOST:[5] 'node1' CLIENT ADDRESS:[0] '' ACTION NUMBER:[3] '100'
May 9 07:02:38 node1 journal: Oracle Audit[1649]: LENGTH : '241' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[4] 'grid' CLIENT TERMINAL:[5] 'pts/0' STATUS:[1] '0' DBID:[0] '' SESSIONID:[10] '4294967295' USERHOST:[5] 'node1' CLIENT ADDRESS:[0] '' ACTION NUMBER:[3] '100'
May 9 07:02:47 node1 journal: Oracle Audit[1993]: LENGTH : '241' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSASM' CLIENT USER:[4] 'grid' CLIENT TERMINAL:[5] 'pts/0' STATUS:[1] '0' DBID:[0] '' SESSIONID:[10] '4294967295' USERHOST:[5] 'node1' CLIENT ADDRESS:[0] '' ACTION NUMBER:[3] '100'
May 9 07:02:48 node1 journal: Oracle Audit[2035]: LENGTH : '241' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSASM' CLIENT USER:[4] 'grid' CLIENT TERMINAL:[5] 'pts/0' STATUS:[1] '0' DBID:[0] '' SESSIONID:[10] '4294967295' USERHOST:[5] 'node1' CLIENT ADDRESS:[0] '' ACTION NUMBER:[3] '100'
May 9 07:02:49 node1 journal: Oracle Audit[2042]: LENGTH : '241' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSASM' CLIENT USER:[4] 'grid' CLIENT TERMINAL:[5] 'pts/0' STATUS:[1] '0' DBID:[0] '' SESSIONID:[10] '4294967295' USERHOST:[5] 'node1' CLIENT ADDRESS:[0] '' ACTION NUMBER:[3] '100'
May 9 07:02:55 node1 journal: Oracle Audit[2477]: LENGTH : '241' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSASM' CLIENT USER:[4] 'grid' CLIENT TERMINAL:[5] 'pts/0' STATUS:[1] '0' DBID:[0] '' SESSIONID:[10] '4294967295' USERHOST:[5] 'node1' CLIENT ADDRESS:[0] '' ACTION NUMBER:[3] '100'