今天因为kafka的日志清理问题被坑了
起因:
- kafka设置的默认log目录是tmp
- kafka配置了定期清理log
- linux的tmp机制, 导致了log被提前删除
- kafka删除log时, 由于log已经删除, 导致报出异常, 停止服务
在某些发行版里, tmp 目录原来只有在启动的时候才会被清理
- 在 Debian-like 的系统,启动的时候才会清理 (规则定义在 /etc/default/rcS )
- 在 RedHat-like 的系统,按文件存在时间定时清理 (RHEL6 规则定义在 /etc/cron.daily/tmpwatch ; RHEL7 以及 RedHat-like with systemd 规则定义在 /usr/lib/tmpfiles.d/tmp.conf , 通过 systemd-tmpfiles-clean.service 服务调用)
- 在 CentOS 里,是按文件存在时间清理的 (通过 crontab 的配置 /etc/cron.daily 定时执行 tmpwatch 来实现)
- 在 Gentoo 里也是启动清理,规则定义在 /etc/conf.d/bootmisc ,但 Gentoo 就是不走寻常路