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. Python之TabError: inconsistent use of tabs and spaces in indentation和ModuleNotFoundError:No module named 'win32api'

    1.TabError: inconsistent use of tabs and spaces in indentation 这是我的代码,感觉没啥不对, 后来运行之后出现了下面的错误,我也是弄了好久 ...

  2. Python:Day06 元组、字典、字符串

    tuple(元组) 元组被称为只读列表,即数据可以被查询,但不能被修改,所以列表的切片操作同样适用于元组. 元组写在( )里,元素之间用逗号隔开. tul1 = ( ) #空元组 tul2 = (20 ...

  3. VS2015P配置opencv340

    1添加系统环境变量 F:\dongdong\0tool\navidia_cuda_opencv\opencv\build\x64\vc14\bin 注销重启 2 工程配置 选择好工程  x64 包含目 ...

  4. nodejs部署智能合约的方法-web3 0.20版本

    参考:https://www.jianshu.com/p/7e541cd67be2 部署智能合约的方法有很多,比如使用truffle框架,使用remix-ide等,在这里的部署方法是使用nodejs一 ...

  5. 项目代码迁移(使用git)

    克隆老仓库(裸仓库):git clone --bare git@codehub.devcloud.huaweicloud.com:e2f197xxxxxxx19fc4ae7348b2ed41/Node ...

  6. MVC架构在Asp.net中的应用和实现

    转载自:http://www.cnblogs.com/baiye7223725/archive/2007/06/07/775390.aspx 摘要:本文主要论述了MVC架构的原理.优缺点以及MVC所能 ...

  7. [03] 线程同步 synchronized

    1.线程同步概述 线程之间有可能共享一些资源,比如内存.文件.数据库等.多个线程同时读写同一份共享资源时,就可能引起冲突,所以引入了线程的"同步"机制. 所谓同步,就是说线程要有先 ...

  8. CF1103D Professional layer 状压DP

    传送门 首先对于所有数求gcd并求出这个gcd含有的质因子,那么在所有数中,只有这一些质因子会对答案产生影响,而且对于所有的数,每一个质因子只会在一个数中被删去. 质因子数量不会超过\(11\),所以 ...

  9. TMS-规划图

    规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 规划图 ...

  10. MyBatis-你所不了解的sql和include

    目录 <sql> 节点的基础 <include> 节点 <sql> 节点包含的节点 一起来学习 mybatis @ 在前一篇[MyBatis动态SQL(认真看看, ...