audit的规则配置稍微不当,就会短时间内产生大量日志,所以这个规则配置一定要当心。当audit日志写满后,可以看到如下场景:

-r-------- 1 root root 8388609 Mar 31 11:47 audit.log.997
-r-------- 1 root root 8388780 Mar 31 11:47 audit.log.998
-r-------- 1 root root 8388621 Mar 31 11:47 audit.log.999

然后在messages日志中有一大堆的warning

2018-03-31T12:12:02.881911+08:00|warning|kernel[-]|[74525.638569] audit: audit_backlog=8193 > audit_backlog_limit=8192
2018-03-31T12:12:02.881997+08:00|warning|kernel[-]|[74525.638571] audit: audit_lost=7035351 audit_rate_limit=0 audit_backlog_limit=8192
2018-03-31T12:12:02.882088+08:00|err|kernel[-]|[74525.638572] audit: backlog limit exceeded

之后可能还会影响rsyslog的正常工作。

auditd本身有日志切分的功能,auditd使用fprintf函数来记录log,累计每次写log的size,每次写完后都会去检查log的大小,当这个size达到用户配置的max_log_file的大小时,就会shift_logs(这个是对于KEEP_LOGS这种模式而言的),新的达到切分值的日志命名为audit.log.1,之前的日志audit.log.(num+1)。

检查日志时,隔几次还会去查看一下磁盘空间是否充足,使用的函数是fstatfs,来获取audit.log文件所在的mount分区的空间信息,当达到space_left的值或者admin_space_left,或者磁盘不足时就会执行相应的action。

那么既然auditd本身有log切分的功能,那如果和rsyslog一起使用,会出现什么问题呢?

对于使用syslog函数来记录日志的话,日志的切分是很准确的,但是auditd是使用的fprintf来记录的log,这样的话,还能按照rsyslog中的配置来切分吗?答案是可以的,我们可以这样处理,在/etc/rsyslog.conf配置文件中,按照如下方式来配置:

$outchannel audit,/var/log/audit/audit.log.tmp,,xx_log_dump.sh param1 param2

audit表示是outchannel的名称(不是日志文件的名称),/var/log/audit/audit.log.tmp是日志输出的目的文件的名称,即rsyslog要检查大小的文件,2097152表示日志文件的大小阈值,xx_log_dump.sh表示日志文件到达阈值后执行的脚本,一般为转储脚本,参数和程序之间通过空格隔开。这样配置后,rsyslog就会从/var/log/audit/audit.log文件中读取日志,然后一条一条的以syslog的方式写入到audit.log.tmp中,因为audit.log.tmp中加入了日期信息,所以audit.log.tmp会比audit.log文件稍大些,当audit.log.tmp达到2097152这个大小时,就把audit.log切分为audit.log.1并且转储处理。

但是要保证/etc/audit/auditd.conf中配置的max_log_file的值要大于/etc/rsyslog.conf配置的切分转储的值。否则audit要切分,rsyslog也过来切分,就乱了,要在audit切分前,rsyslog先完成切分和转储。

linux audit审计(4)--audit的日志切分,以及与rsyslog的切分协同使用的更多相关文章

  1. linux audit审计(7)--读懂audit日志

    让我们先来构造一条audit日志.在home目录下新建一个目录,然后配置一条audit规则,对这个目录的wrax,都记录审计日志: auditctl -w /home/audit_test -p wr ...

  2. linux audit审计(5)--audit规则配置

    audit可以配置规则,这个规则主要是给内核模块下发的,内核audit模块会按照这个规则获取审计信息,发送给auditd来记录日志. 规则类型可分为: 1.控制规则:控制audit系统的规则: 2.文 ...

  3. linux的审计功能(audit)

    为了满足这样的需求:记录文件变化.记录用户对文件的读写,甚至记录系统调用,文件变化通知.什么是auditThe Linux Audit Subsystem is a system to Collect ...

  4. ORACLE AUDIT 审计

    转自 http://blog.csdn.net/dnnyyq/article/details/4525980 1.什么是审计 审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计 ...

  5. Oracle Audit 审计功能的认识与使用

    1.Audit的概念 Audit是监视和记录用户对数据库进行的操作,以供DBA进行问题分析.利用Audit功能,可以完成以下任务: 监视和收集特定数据库活动的数据.例如管理员能够审计哪些表被更新,在某 ...

  6. MySQL审计工具Audit Plugin安装使用

    本实验的审计插件均是安装在 mysql-community-server-5.7.9 的服务器上. 插件安装(社区版) 插件下载地址: https://bintray.com/mcafee/mysql ...

  7. SQL Server 审计(Audit)

    审计(Audit)用于追踪和记录SQL Server实例,或者单个数据库中发生的事件(Event),审计运作的机制是通过捕获事件(Event),把事件包含的信息写入到事件日志(Event Log)或审 ...

  8. linux audit (9)--生成audit报表

    aureport这个命令可以生成一个总结性的柱状图报表,默认情况下,在/var/log/audit目录下的所有日志文件都会生成一个报表,也可以使用如下命令来指定一个不同的文件,aureport opt ...

  9. Oracle11g温习-第十九章:审计(audit)

    2013年4月27日 星期六 10:52 1.审计的功能:监控用户在database 的 action (操作) 2.审计分类 1) session :在同一个session,相同的语句只产生一个审计 ...

随机推荐

  1. 通俗易懂的php多线程解决方案

    我们在做项目的时候,有些需求,特别是数据的响应处理需要花费大量的时间,由于php是一个短生命周期的脚本语言,到了默认的30秒,php的数据处理还没完成,php的生命周期就结束了.这时需要使用异步并发处 ...

  2. ORA-01034:ORACLE not available ORA-27101:shared memory realm does not exit

    ORA-01034:ORACLE not available ORA-27101:shared memory realm does not exit   ERROR: ORA-01034:ORACLE ...

  3. ISCC:Please give me username and password!

    地址:http://118.190.152.202:8017/ 题目说 给用户名和密码, 构造url为:118.190.152.202:8017/?username=sda&password= ...

  4. PAT A1095 Cars on Campus (30 分)——排序,时序,从头遍历会超时

    Zhejiang University has 8 campuses and a lot of gates. From each gate we can collect the in/out time ...

  5. python:HTMLTestRunner测试报告优化

    之前的博客有介绍过python的单元测试框架unittest,基于其扩展的测试报告模块HTMLTestRunner,不过这个报告本身的界面看起来太丑... 趁着今天有时间,找了两个二次开发优化后的HT ...

  6. EF CRUD

    EF 使用心得 有点傻逼! 1.通常情况 表实例一个对象 T_User model = new T_User(); 2.关键 非空字段赋值主键必须要写 model.EID = "009&qu ...

  7. 传统前端工程使用 Vue 等框架重构的思路

    这段时间遇到类似的问题,第一反应便是使用 cli 搭建项目,但是细想一下立马否决了,原因如下: 工程量太大,猴年马月能重构完,此期间原项目还是没有任何变动(如果没人跟你一起同步修改之前老项目的话 无法 ...

  8. .Net架构篇:实用中小型公司支付中心设计

    前言 说起支付平台,支付宝量级的支付平台和一个小型公司的支付不可同日耳语.一个初创或刚创业一两年的公司,一没人力,二没财力的情况下,如果也想对接支付那怎么办呢?感谢支付宝和微信支付,两大行业巨头提供了 ...

  9. 分享vs低版本开发的项目到VS高版本时遇到的4个小问题解决之记录

    分享vs低版本开发的项目到VS高版本时遇到的4个小问题解决之记录 原文首发: http://anforen.com/wp/2017/08/extensionattribute_compilerserv ...

  10. Python中for循环搭配else的陷阱

    假设有如下代码: for i in range(10): if i == 5: print 'found it! i = %s' % i else: print 'not found it ...' ...