如何pipe理/旋转/删除mesos日志
我使用以下命令启动mesos主容器:
ExecStart=/usr/bin/docker run --rm \ -e MESOS_HOSTNAME={{ ansible_hostname }} \ -e MESOS_IP={{mesos.external_ip}} \ -e MESOS_QUORUM={{mesos.quorum}} \ -e MESOS_ZK={{mesos.zk}} \ -e MESOS_LOG_DIR=/var/log/mesos -v /var/log/mesos:/var/log/mesos \ -e MESOS_WORK_DIR=/var/lib/mesos -v {{mesos_work_dir}}:/var/lib/mesos \ --name mesos-master --net host {{docker.master}}
我得到了大量的mesos日志: mesos日志
lrwxrwxrwx. 1 root root 60 Apr 19 17:14 mesos-master.INFO -> mesos-master.vdorct1.invalid-user.log.INFO.20170419-141458.6 -rw-r--r--. 1 root root 23983 Apr 19 16:46 mesos-master.vdorct1.invalid-user.log.INFO.20170419-134210.6 -rw-r--r--. 1 root root 48678 Apr 19 17:14 mesos-master.vdorct1.invalid-user.log.INFO.20170419-135536.6 -rw-r--r--. 1 root root 6595 Apr 19 17:14 mesos-master.vdorct1.invalid-user.log.INFO.20170419-141436.6 -rw-r--r--. 1 root root 8240 Apr 19 17:14 mesos-master.vdorct1.invalid-user.log.INFO.20170419-141444.6 -rw-r--r--. 1 root root 122324 Apr 19 18:14 mesos-master.vdorct1.invalid-user.log.INFO.20170419-141458.6 -rw-r--r--. 1 root root 253 Apr 19 16:42 mesos-master.vdorct1.invalid-user.log.WARNING.20170419-134210.
我需要pipe理这个日志,定义要保留多less个文件和/或多less天保留日志。 我可以使用bash + cron达到它。 但这是不可接受的,因为公司的政策:我必须使用Linux工具。
我试图configurationlogrotate。 但是它只能用于删除文件:它只能删除旋转文件或所有文件。
可能是我可以强制mesos写入单个文件中的日志:仅举例
mesos-master.vdorct1.invalid-user.log.INFO
代替
mesos-master.vdorct1.invalid-user.log.INFO.20170419-134210.6 mesos-master.vdorct1.invalid-user.log.INFO.20170419-135536.6 ...
在这种情况下,我可以configurationlogrotate。
所以问题是:如何使用standart linux工具自动清理mesos日志? 或者我可以如何强制mesos在单个文件中写入日志?
谢谢!
像这样的东西可以使用logrotate和olddir参数来实现:
/var/log/mesos/*.*.* { olddir /var/log/mesos/backup maxsize 2000k daily maxage 7 copytruncate postrotate find /var/log/mesos /var/log/mesos/backup -mtime +7 -delete endscript }
在logrotate运行之前,需要创build来自olddir参数的文件夹。