【问题标题】:rsyslog stale file handler with catalina.out带有 catalina.out 的 rsyslog 陈旧文件处理程序
【发布时间】:2015-08-13 21:35:03
【问题描述】:

问题: 在通过 AWS EBS Tomcat 7 容器将微服务部署为战争之后...注意到在 UTC 日边界发生的日志轮换留下了一个陈旧的 inode 文件。

日志轮换更像是一个副本和截断,这会导致 rsyslog 的文件处理程序过时,该处理程序正在侦听对 catalina.out 的更改。防止过时的 inode 描述符的最佳方法是什么?我应该在 logback.xml 或 logrotate 中指定翻转策略还是...?

sudo lsof /var/log/tomcat7/catalina.out 的输出(和 sudo stat 报告最新的 inode)

rsyslogd 18970 root 2r REG 202,1 1250 134754 /var/log/tomcat7/catalina.out

但与调试模式下 rsyslog 的日志输出不匹配。

4638.114765354:7fc839b8c700: stream checking for file change on '/var/log/tomcat7/catalina.out', inode 135952/135952file 7 read 0 bytes

解决方法 停止 Tomcat,删除 catalina.out,然后重新启动 Tomcat。这允许 rsyslog 继续流式传输新记录。

但是,几个小时后,rsyslog 无法将更新的日志记录流式传输到 rsyslog 目标服务器。 rsyslog 的调试日志包含与 stat 和 lsof 的输出相同的 inode。如果你运行

sudo stat /var/log/tomcat7/catalina.out

rsyslog 再次开始流式传输。

您是否注意到 rsyslog 在日志翻转用例之外间歇性地停止流式传输?

为什么sudo stat /var/log/tomcat7/catalina.out 会导致 rsyslog 再次流式传输?

【问题讨论】:

  • 回答我自己的问题:1. 似乎 catalina.out 的 copyntruncate 不仅在 UTC 日翻转期间发生,而且全天发生。 2. sudo stat 告诉 shell 重新评估你给它的任何目的地的 inode 位置......因此 rsyslog 客户端再次通过 imfile 开始流式传输的原因

标签: amazon-web-services tomcat7 amazon-elastic-beanstalk rsyslog


【解决方案1】:

我也有一个问题,即 rsyslog 在 logrotated 在 catalina.out 上进行轮换后没有立即发送新记录。发布统计信息对我来说并没有完全解决问题,因为问题是 tomcat 停止写入 catalina.out (!) ...在阅读了各种论坛和博客之后,我能够通过以下步骤解决这个问题:

  • 确保我们在 rsyslog 配置中定义了$WorkDirectory;这允许 rsyslog 为 catalina.out(或它监视的任何其他日志文件)写入“状态文件”
  • As noted here on Loggly's blog,您需要停止 rsyslog,删除此状态文件,然后在 postrotate 条目上重新启动 rsyslog。
  • 我对 catalina.out 的 logrotate 设置(状态文件在 /var/lib/rsyslog 中):

    /opt/tomcat/logs/catalina.out {
        rotate 7
        size 50M
        notifempty
        missingok
        postrotate
            service rsyslog stop
            rm /var/lib/rsyslog/*
            service rsyslog start
        endscript
    }   
    

【讨论】:

    猜你喜欢
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 2012-05-14
    相关资源
    最近更新 更多