Ubuntu服务器内核日志被大量BANDWIDTH_OUT消息刷屏的解决求助
Ubuntu服务器内核日志被大量BANDWIDTH_OUT消息刷屏的解决求助
嗨,这种每秒50条日志刷屏、一天生成几十GB日志的情况确实糟心,既占磁盘空间又干扰正常的日志排查。咱们一步步来定位解决:
先确认来源:这些日志大概率是iptables的LOG规则导致的
你看到的BANDWIDTH_OUT是自定义的日志前缀,应该是有人在iptables里加了带这个前缀的LOG规则,把出站流量都记录到内核日志里了。检查当前的iptables规则
执行下面的命令查看所有iptables规则,重点找带BANDWIDTH_OUT前缀的LOG条目:sudo iptables -L -v -n # 或者更直观的导出所有规则 sudo iptables-save你会看到类似这样的规则(示例):
-A OUTPUT -o eno1 -j LOG --log-prefix "BANDWIDTH_OUT:"临时禁用规则测试
找到对应的规则后,先临时删除它来验证是不是这个规则在搞鬼。比如如果这条规则在OUTPUT链的第3位,执行:sudo iptables -D OUTPUT 3然后观察几分钟内核日志(比如用
tail -f /var/log/kern.log),如果日志不再刷屏,就确认问题根源了。永久移除问题规则
- 如果是你手动添加的规则,刚才的临时删除就够了,重启后不会恢复(如果没保存规则的话);
- 如果是通过防火墙管理工具(比如ufw)添加的,去
/etc/ufw/rules/*.rules里找到对应的LOG规则删掉,然后执行sudo ufw reload生效; - 如果是脚本或定时任务自动添加的,检查
crontab -l或者开机启动脚本,找到对应的脚本并禁用它。
替代方案:如果需要监控带宽
要是你本来是想用这个规则统计带宽,那换用更高效的工具吧,比如iftop(实时流量监控)、vnstat(长期流量统计),这些工具不会生成海量内核日志,用起来更省心。清理已生成的大日志
最后别忘了清理已经占满磁盘的日志文件,比如:sudo truncate -s 0 /var/log/kern.log注意:如果你的内核日志存在其他路径(比如
/var/log/dmesg),替换成对应的路径即可。
备注:内容来源于stack exchange,提问作者Paul Sommer
相关产品推荐
相关产品推荐

