如何做到两行代码清理NTA(IDS-suricata)日志

1.任务描述:

监控运维那边在机器挂载的磁盘磁盘剩余量小于百分之十时就会通知到运营小组统一接口人(在下)这里,为了防止半夜打给我电话扰我美梦,就需要整一个小shell代替监控磁盘容量,在到达电话告警之前自动做一次针对suricata日志的磁盘清理

2.原理阐述:

1.df -h查看磁盘空间,添加管道符|和grep找到我们需要关注的挂载盘,我这里需要关注的是/data,然后把选择将第五栏Use%(已用百分比)的值取出来赋值给变量Use

Use=`df -h | grep /data |awk '{print $5}'`

2.1使用条件判断[]判断磁盘已用百分比是否大于我们设定的阈值,我这里设定超过50%就要进行下一步处理
2.2百分数无法进行数值大小比对,需要先使用%%去掉百分号然后与50进行比对-ge表示比对是否大于等于

[ ${Use%%%*} -ge 50 ]

3.suricata告警的alert日志在没有某条特定规则在特定场景下告警爆炸以外,是占不了多少磁盘空间的,而真正的大件儿是suricata针对流量的audit的审计日志,所以我们先用find命令使用模糊查询匹配audit事件日志
4.使用find -exec进行后续操作,文件不能直接删除,suricata这笨蛋不会自己生成新文件也识别不了用户创建的新文件,所以我们只能对文件进行清空操作,常规的方法是echo直接清空,我这边选了一个比较装杯的dd命令把Linux大黑洞/dev/null导过来,同样也可以实现清空文件

[ ${Use%%%*} -ge 50 ] && find /data/logs/suricata/ -type f -name '*audit*.json' -exec dd if=/dev/null of='{}' \;

放一个完整代码:

#!/bin/bash
Use=`df -h | grep /data |awk '{print $5}'`
[ ${Use%%%*} -ge 50 ] && find /data/logs/suricata/ -type f -name '*audit*.json' -exec dd if=/dev/null of='{}' \;

然后定时任务开起来!

0 */1 * * * /bin/bash /opt/clean_Casual.sh

3.特别注意:

自己在做这个事情的时候,卡到了一个奇怪的BUG处理了很久很久最后发现是一个常识性的问题:建议大家在Linux里创建.sh文件,进行编辑,不要在windows上创建完编辑完(尤其是在notepad++)再传上Linux,因为notepad++内部逻辑每一行代码最后都有一个/n/r,Linux识别不了这个/r所以会出现各种各样的问题和BUG

4.日常吹逼:

终于是不用养一只猫猫训练它每晚帮我处理磁盘容量告警了蛤蛤蛤
PS:我主人已经睡了,虽然没被训练处理告警,但是竟然被派来帮他写博客!生气气!不说了,主人要醒了嗷

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值