suricata利用logrotate切日志

2020-08-18  本文已影响0人  明翼

suricata的默认日志,比如eve.json等日志是没有按照时间切割的,也没有按照大小切割,就一个文件,需要对这些日志文件进行处理和删除的时候非常不方便,如果不想通过改源码的方式去切割日志的话,可以采用logrotate进行日志的切分.

一 logrotate

logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。

1.1 安装

我们所用系统是centos,默认已经安装,如果没有安装,可以通过命令

yum install -y logrotate

配置文件:

daily 指定转储周期为每天
weekly 指定转储周期为每周
monthly 指定转储周期为每月
rotate 转储次数,超过将会删除最老的那一个
missingok 忽略错误,如“日志文件无法找到”的错误提示
dateext 切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期
compress 通过gzip 压缩转储旧的日志
delaycompress 当前转储的日志文件到下一次转储时才压缩
notifempty 如果日志文件为空,不执行切割
sharedscripts 只为整个日志组运行一次的脚本
prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
size  size当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).

二 suricata 配置如下

./log/suricata/*.log ./log/suricata/*.json {
        daily
        missingok
        rotate 5
        compress
        delaycompress
        minsize 500k
    sharedscripts
    postrotate
        /bin/kill -HUP `cat ./run/suricata.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

说明:
daily :按照天转存
missingok: 忽略错误
rotate 5: 最多保存5个
compress:对旧日志进行压缩
minsize : 最小500k
最后是通过/bin/kill -HUP `cat ./run/suricata.pid 2> /dev/null` 2> /dev/null || true 给suricata发信号,suricata后续会生成新的文件。

运行下如下命令,就会按照要求切分:

 logrotate  -f suricata.logrotate

这种长期运行的话放进crontab里面即可。

上一篇 下一篇

猜你喜欢

热点阅读