Logrotate 不删除旋转日志

问题描述

我已经实现了一个 Fluentd sidecar 来轮换存储在 Kubernetes 集群上的日志文件

容器使用以下配置在 cronjob 上每 15 分钟运行一次 logrotate。

*/15 * * * *    /usr/sbin/logrotate -v /etc/logrotate.conf

/etc/logrotate.conf 下面

/var/lib/docker/containers/*/*.log
{
  size 10M
  missingok
  notifempty
  copytruncate
  rotate 5
  su root root
}

当日志文件达到大约 10M 时,这似乎成功地轮换了日志文件,但是一旦 .5 日志文件被滚动,日志文件不会被清除。有些可能是,但有些达到了 .9。下面的文件系统:

     0 Apr 20 21:48 ./6270fe6c6875e47272ce4d5c4cbd5766ce934c79878f50166211803f78e862cb/6270fe6c6875e47272ce4d5c4cbd5766ce934c79878f50166211803f78e862cb-json.log
   569 Apr 20 21:48 ./6270fe6c6875e47272ce4d5c4cbd5766ce934c79878f50166211803f78e862cb/6270fe6c6875e47272ce4d5c4cbd5766ce934c79878f50166211803f78e862cb-json.log.1
  9.5M Apr 20 22:00 ./e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de/e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de-json.log.9
  9.5M Apr 20 22:00 ./e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de/e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de-json.log.8
  9.5M Apr 20 22:00 ./e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de/e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de-json.log.7
  9.5M Apr 20 22:00 ./e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de/e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de-json.log.6
  9.5M Apr 20 22:00 ./e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de/e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de-json.log.5
  9.5M Apr 20 22:00 ./e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de/e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de-json.log.4
  9.5M Apr 20 22:00 ./e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de/e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de-json.log.3
  9.5M Apr 20 22:00 ./e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de/e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de-json.log.2
  9.5M Apr 20 22:00 ./e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de/e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de-json.log.1
787.1K Apr 20 22:08 ./e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de/e21792c56001e343291e64927dcfc8dd5be3449b0c347c41211aa450ba0ce7de-json.log
     0 Apr 20 21:48 ./bbec8c11ef419591efdbe6850144cac5bfb77222e8024447f9b15422d3e2b0ca/bbec8c11ef419591efdbe6850144cac5bfb77222e8024447f9b15422d3e2b0ca-json.log
146.4K Apr 20 21:48 ./bbec8c11ef419591efdbe6850144cac5bfb77222e8024447f9b15422d3e2b0ca/bbec8c11ef419591efdbe6850144cac5bfb77222e8024447f9b15422d3e2b0ca-json.log.1
  8.0M Apr 20 22:08 ./33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log
  7.0M Apr 20 21:58 ./33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.5
  7.1M Apr 20 21:59 ./33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.4
  7.1M Apr 20 22:00 ./33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.3
  7.1M Apr 20 22:00 ./33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.2
  7.2M Apr 20 22:00 ./33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.1
     0 Apr 20 10:46 ./f683a00adabfc6ea9b4edfd19c336d3bd2e0e5747fb8b49713ffb5e002f4266e/f683a00adabfc6ea9b4edfd19c336d3bd2e0e5747fb8b49713ffb5e002f4266e-json.log

我不知道我是否使用了无效的配置?我不需要长时间保留日志,它们几乎和写入一样快地传送到 AWS CloudWatch - 我只需要节点不占用磁盘空间。

日志输出(修剪)...

reading config file /etc/logrotate.conf
Reading state from file: /var/lib/logrotate.status
Allocating hash table for state file,size 64 entries
Creating new state
...
Creating new state

Handling 1 logs

rotating pattern: /var/lib/docker/containers/*/*.log
 7340032 bytes (5 rotations)
empty log files are not rotated,old logs are removed
considering log /var/lib/docker/containers/052e7eaaab7bfe74e77a2e43f314a0dd219ddfd998ad670cab4936fa2ee16937/052e7eaaab7bfe74e77a2e43f314a0dd219ddfd998ad670cab4936fa2ee16937-json.log
  Now: 2021-04-21 10:45
  Last rotated at 2021-04-21 08:45
  log does not need rotating (log size is below the 'size' threshold)
...
...
rotating log /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log,log->rotateCount is 5
dateext suffix '-20210421'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.5 to /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.6 (rotatecount 5,logstart 1,i 5),renaming /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.4 to /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.5 (rotatecount 5,i 4),renaming /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.3 to /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.4 (rotatecount 5,i 3),renaming /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.2 to /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.3 (rotatecount 5,i 2),renaming /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.1 to /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.2 (rotatecount 5,i 1),renaming /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.0 to /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.1 (rotatecount 5,i 0),old log /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.0 does not exist
copying /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log to /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.1
truncating /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log
removing old log /var/lib/docker/containers/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e/33f2d4ad5090b8699ace2942e398b64707074b2aed28000887214f4594ce165e-json.log.6

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...