【问题标题】:/var/log/messages keeps on repopulating/var/log/messages 不断重新填充
【发布时间】:2015-01-27 14:05:52
【问题描述】:

我需要清除所有 rsyslog 日志,所以我停止 rsyslog 并删除 file.log 以及 /var/log/messages。但是,一旦我重新启动服务,所有日志就会再次开始弹出(400k 行)。我查找了更多信息,似乎 StateFile 没有保存在某处。我尝试创建具有 777 权限的 /var/spool/rsyslog 目录,但这也没有解决问题,并且 file.log 不断地重新填充,并且它不会停止,直到日志文件返回所有无意义的日志在里面。

我在 ../rsyslog.d 中有如下配置的日志文件 local0.* /home/user/file.log

我的操作系统是 Pidora,我正在运行 pidora rsyslogd: [origin software="rsyslogd" swVersion="7.4.2" x-pid="1150" x-info="http://www.rsyslog.com"]

如何彻底清除所有 rsyslog 并阻止 rsyslog 重新填充它????这几天一直被这个问题困扰。

杂项。信息:我还注意到 /var/log/messages 中的一大堆以下错误 11 月 28 日 12:26:51 pidora rsyslogd-2177:imjournal:由于速率限制而开始丢弃消息 11 月 28 日 12:36:07 pidora rsyslogd-2177:imjournal:由于速率限制而丢失了 334681 条消息

【问题讨论】:

    标签: logging fedora rsyslog


    【解决方案1】:

    重新启动 rsyslog 后日志重新出现的原因是因为有一个进程不断记录这些消息,因此 rsyslog 限制了它们的速率。根据您提供的这两个日志打印之间的时间,它似乎正在打印 ~570 个日志/秒。我需要更多的日志输出来帮助你弄清楚发生了什么。

    您有两种选择

    1. (推荐)找出有问题的进程为什么会发出这些消息并修复它,以便消息停止。会不会和this bug有关?

    2. (不推荐) 在模块部分之后添加一个过滤器到您的 rsyslog 配置中。这不是您想要长期使用的解决方案,因为它会从相关进程中删除所有消息,而不仅仅是您想要删除的消息。这可能意味着您可能会错过重要的错误消息。这样的事情会做到这一点:

      if $programname == '<processname>' then ~

    解决问题很重要,而不仅仅是过滤它,因为在 Raspberry Pi 上,您将在基于闪存的内存上运行。如果一个进程持续记录大量消息并且您长时间运行它,您可能会更快地磨损 SD 卡。

    【讨论】:

    • 感谢您的回复鲍勃。喷出这些消息的过程实际上是我自己编写的,选择 rsyslog 是因为它可以处理快速日志记录。不幸的是,选项 2 也不起作用,因为我已经有一个将日志保存到本地文件的过滤器。我正在尝试在该文件上运行 logrotate 以确保大小不会因此而失控。问题是当 logrotate 执行时,我的日志文件从一开始就开始提取所有内容。这完全违背了对数旋转的目的。
    • 我想要的是,我应该能够在没有 rsyslog 的情况下进行 logrorate,而无需每次 logrotates 从一开始就拉取所有内容。
    • 我不明白你所说的“从一开始就拉扯一切”是什么意思。您不希望它在旋转后重新填充日志吗?通常,在执行 logrotate 后,会向 rsyslog 发送一个“HUP”,告诉它更新它的文件引用。
    • 因此,例如,让我们以一天之内累积“A B C D .... Z\0”字符串的示例 file.log 为例。假设在早上 6 点开始,file.log 有条目“A B C”。此时,如果我对此 file.log 执行 logrotate,将创建一个备份文件 ,其内容为“A B C \0”。从这一点开始,file.log 应该从“DE F....”继续,但我实际上看到的是“ABCDEF”...这就是我的意思是它从一开始就将所有内容都拉入 file.log什么时候不应该。我能够解决这个问题的唯一方法是 rm /var/log/journal/*
    • 我认为 rsyslog 应该为 file.log 创建一个状态文件,但该状态文件不知何故没有完成它的工作......我不知道我是否走在正确的轨道上...... . 感谢您调查此 Bob
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 2017-11-08
    • 2015-12-07
    相关资源
    最近更新 更多