Centos7系统日志停止写入问题




症状

dmesg一堆这种日志,其他日志也都没了,/var/log/messages停打,最后一条日志一般是:

执行journalctl命令检查发现系统日志卷文件损坏错误:

尝试rm -rf删除这个损坏文件,/var/log/messages会恢复打印,dmesg也恢复正常输出,但没过多久就会再次出现这种问题。

我用的Centos7.2系统的systemd版本是:systemd-219-19.el7.x86_64

解决方法

首先找到原因才能解决,一开始只找到上面的删除journal文件的临时办法,后来发现不能真正解决,于是又花了大半天时间google搜索,功夫不负有心人,找到了问题原因,是systemd的一个bug,在journal需要压缩的时候就会发生这个问题,后果实在是很严重,还好已经修复了。有两种方法,我这边在两台经常发生这个问题的服务器上都实验了,跑了2天多都没有再发生,应该是确认可以解决的:

  1. 关掉journal压缩配置项:vi /etc/systemd/journald.conf,把#Compress=yes改成Compress=no,之后systemctl restart systemd-journald即可
  2. 升级systemd版本,我升级到systemd-219-42.el7_4.4.x86_64,之后systemctl restart systemd-journald,也应该可以解决

bug链接