mesos 解决sandbox日志切分问题
mesos运行的docker容器,容器打印到前台console的日志会记录到mesos的work目录中容器沙箱中stdout和stderr文件中,容器不重启,日志会一直变大,这样会到只宿主空间变大。
另外这份日志还会日志到系统的/var/log/messages 文件中。
首先关于 mesos-slave 的 work-dir 中设置的目录,里面存放的docker容器的沙箱目录,会有 stderr\stdout等文件,其中这两个文件是记录容器console的日志,会一直保留,直到容器销毁,这样日志文件会持续增大。
为解决这个问题问题。mesos 没有明确的配置。 http://mesos.apache.org/documentation/latest/logging/ 文章中有提到沙箱大小的设置,但是没有测试成功。
我的解决办法:利用系统的 logrotate 模块做日志的切分和删除。
如:添加配置文件
1 | cat > /etc/logrotate.d/mesos << EOF |
这样每天都会切分 大于 100Mb的日志了, 并保留7天。
1 | /usr/sbin/logrotate -d -v -f /etc/logrotate.conf |
crontab 中 已经添加,logrotate 会每天执行的。/etc/cron.daily/logrotate