zoukankan      html  css  js  c++  java
  • linux audit审计(4)--audit的日志切分,以及与rsyslog的切分协同使用

    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,2097152,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先完成切分和转储。

    1.  

  • 相关阅读:
    Android系统移植与驱动开发案例 第一章
    收缩SQL数据库日志文件
    SQL Server Configuration Manager出错
    sql server 2008 评估期已过期解决办法
    服务器管理器打开角色、功能出错
    常用网络命令(windows)
    linux 常用命令
    获取指定月的最后一天
    浅谈JVM原理
    Maven+SSM+oracle框架实现简单的增删改查
  • 原文地址:https://www.cnblogs.com/xingmuxin/p/8708896.html
Copyright © 2011-2022 走看看