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. C#定时备份正在播放的幻灯片、word文档、excel电子表格,mht格式文档

    控制台应用, 代码如下: using System; using System.Collections.Generic; using System.IO; using System.Linq; usi ...

  2. How to get Pycharm

    PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如:代码跳转.智能提示.自动完成.单元测试.版本控制.此外,该IDE提供了一些高级功能, ...

  3. Spring Security(十):3. What’s New in Spring Security 4.2 (新功能)

    Among other things, Spring Security 4.2 brings early support for Spring Framework 5. You can find th ...

  4. 初学Python——进程

    什么是进程? 程序不能单独执行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的过程就叫做进程.进程是操作系统调度的最小单位. 程序和进程的区别在于:程序是储存在硬盘上指令的有序集合,是 ...

  5. [MicroPython]TPYBoardv102播放音乐实例

    0x00前言 前段时间看到TPYBoard的技术交流群(群号:157816561,)里有人问关于TPYBoard播放音乐的问题.最近抽空看了一下文档介绍,着手做了个实验.更多MicroPython的教 ...

  6. DOM(三)

    Text类型 文本节点由Text类型表示,包含的是可以照字面解释的纯文本内容,纯文本中可以包含转义后的HTML字符,但不包含HTML代码,Text节点具有以下特征: nodeType值为3: node ...

  7. 让你一看就懂的快速排序算法(Java)

    快速排序 你也许会被快速排序的文章弄得迷迷糊糊,其实大体上去看,快速排序就一步:找个数做基准数,把小于它的数移到它左边,把大于它的数移到它右边.这句话是核心.然后我们只需要让基准数左边的重复上面的步骤 ...

  8. SpringBoot集成Freemarker与Thymeleaf

    一:概括 pom.xml添加依赖 配置application.yml HTML页面使用表达式 二:Freemarker模板引擎 1.添加依赖 <!-- ftl模板引擎 --> <de ...

  9. vue-amap 实例获取与自动缩放

    this.$refs.map.$amap.setFitView(markers) 获取实例,$amap 为 el-map 的 vid,没错,vid 获取方式就是这样 markers 为 Amap.Ma ...

  10. MySQL 5.7中如何定位DDL被阻塞的问题

    在上篇文章<MySQL表结构变更,不可不知的Metadata Lock>中,我们介绍了MDL引入的背景,及基本概念,从“道”的层面知道了什么是MDL.下面就从“术”的层面看看如何定位MDL ...