2017-04-19 86 views
0

我開始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 logs

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. 

我需要管理這些日誌,定義要保留多少個文件和/或多少天保留日誌。 我可以使用bash + cron達到它。但由於公司政策,這是不可接受的:我必須使用Linux工具。

我試着配置logrotate。但它不能用於刪除文件:它只能刪除旋轉的文件或所有文件。

也許我可以強制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 
... 

在這種情況下,我可以配置logrotate的。

所以問題是:我如何使用standart linux工具自動清理mesos日誌?或者我可以如何強制mesos在單個文件中寫入日誌?

謝謝!

回答

1

像這樣的東西可以用日誌輪播與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 
} 

有必要從olddir參數文件夾logrotate的運行前已經建立。