[20170518]11G审计日志清除3.txt

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: [20170518]11G审计日志清除3.txt --//以前写的链接:http://blog.itpub.net/267265/viewspace-2133145/ --//我当时写存在许多问题,仅仅清除sys.

[20170518]11G审计日志清除3.txt

--//以前写的链接:http://blog.itpub.net/267265/viewspace-2133145/
--//我当时写存在许多问题,仅仅清除sys.aud$内容,参数audit_file_dest目录的文件不清除,而这里参数大量的aud文件,重新测试看看.

1.环境:
SYS@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

2.清理工作:
http://www.oracle-base.com/articles/11g/AuditingEnchancements_11gR2.php
======================================================
-- Constants  注意重叠问题.
-- Audit Trail types
--
AUDIT_TRAIL_AUD_STD           CONSTANT NUMBER := 1;
AUDIT_TRAIL_FGA_STD           CONSTANT NUMBER := 2;
--
-- Both AUDIT_TRAIL_AUD_STD and AUDIT_TRAIL_FGA_STD
AUDIT_TRAIL_DB_STD            CONSTANT NUMBER := 3;
--
AUDIT_TRAIL_OS                CONSTANT NUMBER := 4;
AUDIT_TRAIL_XML               CONSTANT NUMBER := 8;
--
-- Both AUDIT_TRAIL_OS and AUDIT_TRAIL_XML
AUDIT_TRAIL_FILES             CONSTANT NUMBER := 12;
--
-- All above audit trail types
AUDIT_TRAIL_ALL               CONSTANT NUMBER := 15;
======================================================

--//注:我当时选择AUDIT_TRAIL_AUD_STD,现在选择全部(AUDIT_TRAIL_ALL).直接使用数字15应该也可以.
--//首先清除前面的设置

exec DBMS_AUDIT_MGMT.DEINIT_CLEANUP(AUDIT_TRAIL_TYPE=>SYS.DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD);
exec dbms_scheduler.drop_job( job_name =>  'SYS.DAILY_AUDIT_ARCHIVE_TIMESTAMP' , force => TRUE);
exec SYS.DBMS_AUDIT_MGMT.DROP_PURGE_JOB( AUDIT_TRAIL_PURGE_NAME =>   'Daily_Audit_Purge_Job');

--//这些参考链接http://blog.itpub.net/267265/viewspace-2133145/,感叹一下看文档不认真.
--//这些步骤都是前面没有配置好,大家可以不看这些内容.我仅仅做一个记录.

3.初始化工作:

BEGIN
  DBMS_AUDIT_MGMT.init_cleanup(
    audit_trail_type         => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,
    default_cleanup_interval => 24 /* hours */);
END;
/

SET SERVEROUTPUT ON
BEGIN
  IF sys.DBMS_AUDIT_MGMT.is_cleanup_initialized(sys.DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL) THEN
    DBMS_OUTPUT.put_line('YES');
  ELSE
    DBMS_OUTPUT.put_line('NO');
  END IF;
END;
/
YES
PL/SQL procedure successfully completed.

--//返回YES,说明已经做清理的初始化工作.
--//这样设计对全部audit才有效.

SYS@xxxxx> column PARAMETER_VALUE format a30
SYS@xxxxx> column PARAMETER_name format a30
SYS@xxxxx> SELECT *  FROM DBA_AUDIT_MGMT_CONFIG_PARAMS;
PARAMETER_NAME                 PARAMETER_VALUE AUDIT_TRAIL
------------------------------ --------------- ----------------------------
DB AUDIT TABLESPACE            TSP_AUDIT       STANDARD AUDIT TRAIL
DB AUDIT TABLESPACE            TSP_AUDIT       FGA AUDIT TRAIL
AUDIT FILE MAX SIZE            10000           OS AUDIT TRAIL
AUDIT FILE MAX SIZE            10000           XML AUDIT TRAIL
AUDIT FILE MAX AGE             5               OS AUDIT TRAIL
AUDIT FILE MAX AGE             5               XML AUDIT TRAIL
DB AUDIT CLEAN BATCH SIZE      10000           STANDARD AUDIT TRAIL
DB AUDIT CLEAN BATCH SIZE      10000           FGA AUDIT TRAIL
OS FILE CLEAN BATCH SIZE       1000            OS AUDIT TRAIL
OS FILE CLEAN BATCH SIZE       1000            XML AUDIT TRAIL
DEFAULT CLEAN UP INTERVAL      24              FGA AUDIT TRAIL
DEFAULT CLEAN UP INTERVAL      24              OS AUDIT TRAIL
DEFAULT CLEAN UP INTERVAL      24              STANDARD AUDIT TRAIL
DEFAULT CLEAN UP INTERVAL      24              XML AUDIT TRAIL
14 rows selected.

--//看最后4行DEFAULT CLEAN UP INTERVAL,DEFAULT CLEAN UP INTERVAL,DEFAULT CLEAN UP INTERVAL,DEFAULT CLEAN UP INTERVAL
--//已经定义了清理间隔时间.

4.建立schedule,清理日志:
--//oracle处理这些问题的机制有点繁琐,首先是标记那些需要clean,执行SET_LAST_ARCHIVE_TIMESTAMP然后交由清除程序处理.

BEGIN
  DBMS_SCHEDULER.CREATE_JOB (
    job_name   => 'SYS.DAILY_AUDIT_ARCHIVE_TIMESTAMP',
    job_type   => 'PLSQL_BLOCK',
    job_action => 'BEGIN
                       DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,LAST_ARCHIVE_TIME => SYSDATE-30);
                       DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS,LAST_ARCHIVE_TIME => SYSDATE-30);
                   END;',
    start_date => sysdate,
    repeat_interval => 'FREQ=HOURLY;INTERVAL=24',
    enabled    =>  TRUE,
    comments   => 'Create an archive timestamp'
  );
END;
/

--//注:这里AUDIT_TRAIL_TYPE 不能使用 DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,必须1个1个写.
SYS@xxxxx> BEGIN DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,LAST_ARCHIVE_TIME => SYSDATE-1); END;
  2  /
BEGIN DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,LAST_ARCHIVE_TIME => SYSDATE-1); END;
*
ERROR at line 1:
ORA-46250: Invalid value for argument 'AUDIT_TRAIL_TYPE'
ORA-06512: at "SYS.DBMS_AUDIT_MGMT", line 61
ORA-06512: at "SYS.DBMS_AUDIT_MGMT", line 2233
ORA-06512: at line 1

--//每个小时检查1次,标记30天前的日志.一些参数可以根据需要自己调整.我自己的测试保留30天.建议生产系统保留100天或者半年.
--//建立清理程序:

BEGIN
  SYS.DBMS_AUDIT_MGMT.CREATE_PURGE_JOB(
    AUDIT_TRAIL_TYPE           => SYS.DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,
    AUDIT_TRAIL_PURGE_INTERVAL => 24 /* hours */,
    AUDIT_TRAIL_PURGE_NAME     => 'Daily_Audit_Purge_Job',
    USE_LAST_ARCH_TIMESTAMP    => TRUE
  );
END;
/

4.相关视图查询:
SYS@xxxxx> select * from DBA_AUDIT_MGMT_CLEANUP_JOBS;
JOB_NAME                       JOB_STAT AUDIT_TRAIL                  JOB_FREQUENCY
------------------------------ -------- ---------------------------- -----------------------
DAILY_AUDIT_PURGE_JOB          ENABLED  ALL AUDIT TRAILS             FREQ=HOURLY;INTERVAL=24

SYS@xxxxx> select * from DBA_AUDIT_MGMT_LAST_ARCH_TS;
AUDIT_TRAIL          RAC_INSTANCE LAST_ARCHIVE_TS
-------------------- ------------ ---------------------------------------------------------------------------
STANDARD AUDIT TRAIL            0 2017-04-18 15:25:37.000000 +00:00
OS AUDIT TRAIL                  1 2017-04-18 15:25:37.000000 +08:00

SYS@xxxxx> select * from DBA_AUDIT_MGMT_CLEAN_EVENTS;
AUDIT_TRAIL          RAC_INSTANCE CLEANUP_TIME                      DELETE_COUNT WAS
-------------------- ------------ --------------------------------- ------------ ---
STANDARD AUDIT TRAIL            0 2017-05-17 00:52:47.741345 +00:00           87 NO
STANDARD AUDIT TRAIL            0 2017-05-18 00:52:47.701398 +00:00            1 NO
OS AUDIT TRAIL                  1 2017-05-18 07:25:13.354238 +00:00          285 NO

SYS@xxxxx> @ &r/pt2 'SELECT OWNER,JOB_NAME,JOB_STYLE,JOB_CREATOR,JOB_TYPE,JOB_ACTION,START_DATE,REPEAT_INTERVAL,ENABLED,STATE,SYSTEM,NLS_ENV,COMMENTS FROM dba_scheduler_jobs WHERE job_name LIKE ''%AUDIT%'''
   ROW_NUM    COL_NUM COL_NAME         COL_VALUE
---------- ---------- ---------------- ----------------------------------------------------------------------------------------------------
         1          1 OWNER            SYS
                    2 JOB_NAME         DAILY_AUDIT_PURGE_JOB
                    3 JOB_STYLE        REGULAR
                    4 JOB_CREATOR      SYS
                    5 JOB_TYPE         PLSQL_BLOCK
                    6 JOB_ACTION       BEGIN DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(15, TRUE);  END;
                    7 START_DATE       2017-05-18 12:03:39.838620 +08:00
                    8 REPEAT_INTERVAL  FREQ=HOURLY;INTERVAL=24
                    9 ENABLED          TRUE
                   10 STATE            SCHEDULED
                   11 SYSTEM           TRUE
                   12 NLS_ENV          NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA' NLS_CURRENCY='$' NLS_ISO_CURRENCY='AMERICA' NLS_NUME
                   13 COMMENTS         Audit clean job = 'Daily_Audit_Purge_Job'
         2          1 OWNER            SYS
                    2 JOB_NAME         DAILY_AUDIT_ARCHIVE_TIMESTAMP
                    3 JOB_STYLE        REGULAR
                    4 JOB_CREATOR      SYS
                    5 JOB_TYPE         PLSQL_BLOCK
                    6 JOB_ACTION       BEGIN
                                                              DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(AUDIT_TRAIL_TYPE => DBMS_AUD

                    7 START_DATE       2017-05-18 15:21:40.000000 +08:00
                    8 REPEAT_INTERVAL  FREQ=HOURLY;INTERVAL=24
                    9 ENABLED          TRUE
                   10 STATE            SCHEDULED
                   11 SYSTEM           TRUE
                   12 NLS_ENV          NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA' NLS_CURRENCY='$' NLS_ISO_CURRENCY='AMERICA' NLS_NUME
                   13 COMMENTS         Create an archive timestamp
26 rows selected.

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6月前
|
监控 安全 Linux
在Linux中,如何查看和审计系统日志文件以检测异常活动?
在Linux中,如何查看和审计系统日志文件以检测异常活动?
|
8月前
|
SQL 安全 关系型数据库
关系性数据库错误日志安全审计
【6月更文挑战第4天】
80 8
EMQ
|
9月前
|
JSON 安全 API
EMQX Enterprise 5.3 发布:审计日志、Dashboard 访问权限控制与 SSO 一站登录
EMQX Enterprise 5.3.0 版本已正式发布! 新版本带来多个企业特性的更新,包括审计日志,Dashboard RBAC 权限控制,以及基于 SSO(单点登录)的一站式登录,提升了企业级部署的安全性、管理性和治理能力。此外,新版本还进行了多项改进以及 BUG 修复,进一步提升了整体性能和稳定性。
EMQ
365 13
|
9月前
|
存储 人工智能 运维
SLS 大模型可观测&安全推理审计标准解决方案
本文介绍大模型可观测&安全推理审计解决方案和Demo演示,SLS 提供全面的 LLM 监控和日志记录功能。监控大模型使用情况和性能,自定义仪表盘;SLS 汇总 Actiontrail 事件、云产品可观测日志、LLM 网关明细日志、详细对话明细日志、Prompt Trace 和推理实时调用明细等数据,建设完整统一的大模型可观测方案,为用户的大模型安全推理审计提供全面合规支持。
104852 1
|
9月前
|
SQL 弹性计算 监控
构建多账号云环境的解决方案|多账号云上操作日志统一审计
操作审计(ActionTrail)是阿里云提供的云账号资源操作记录的查询和投递服务,可用于安全分析、资源变更追踪以及合规性审计等场景。企业在阿里云采用多账号的资源结构时,如何满对跨账号跨地域的云上操作日志进行统一归集留存和分析,是企业上云管云过程的必备环节。此次分享为您介绍如何使用操作审计产品进行中心化的审计,提升云上多账号操作的可控可见性,及时发现问题、响应问题,规避潜在风险。
370 0
|
9月前
|
存储 Kubernetes Cloud Native
云原生|kubernetes|apiserver审计日志的开启
云原生|kubernetes|apiserver审计日志的开启
247 0
|
SQL 关系型数据库 MySQL
微服务轮子项目(15) -审计日志
微服务轮子项目(15) -审计日志
100 0
|
存储 监控 安全
网络安全之认识日志采集分析审计系统
日志对于大家来说非常熟悉,机房中的各种系统、防火墙、交换机、路由器等等,都在不断地产生日志。无数实践告诉我们,健全的日志记录和分析系统是系统正常运营与优化以及安全事故响应的基础。我们一起来认识日志采集分析审计系统。
333 0
|
存储 运维 监控
mysql开启审计日志
mysql开启审计日志
432 0
|
SQL Oracle 关系型数据库
rman备份产生800G的审计日志(select action from gv$session )
一个客户反映,我们的备份软件在备份过程中产生了大量审计日志,多大800多G,把根分区都塞满了,日志里面都是下面这条SQL:
101 0