我正在使用模板来dynamic生成rsyslog文件名。 我已经对原始格式做了一些修改,但是rsyslog在重新启动后似乎还是使用了新模板和旧模板。
我的文件名模板是这样的:
$template RemoteDailyLog,"/var/log/remote/%hostname%/%$year%/%$month%/%$day%.log"
对此:
$template RemoteDailyLog,"/var/log/remote/%hostname%/%fromhost-ip%/%$year%/%$month%/%$day%.log"
我停止rsyslogd使用service rsyslog stop rsyslog service rsyslog stop ,使用rm -rf /var/log/remote/*删除所有的日志文件,然后用service rsyslog start rsyslog service rsyslog start重新启动rsyslogd。
问题是rsyslog似乎是build立types"/var/log/remote/%hostname%/%$year%/%$month%/%$day%.log"文件夹结构(即没有远程IP) ,它不再出现在我的configuration中的任何地方。
是否有可能旧的日志或configuration数据已被caching在某个地方,并通过服务器重新启动保存? 这正在让我有一点点。
这个问题解决了我与rsyslog 有关的问题后自行解决。 我不知道它是如何相关的,但是如果rsyslog在打开dynamic日志文件时遇到问题,它似乎在过去的configuration方面有一些不稳定的行为。 无论如何,这里是我的解决scheme的重印:
在检查服务器的/ var / log / syslog之后,我发现rsyslog在打开dynamic文件时遇到了问题。 事实certificate,rsyslog默认的Ubuntu 10.04 LTSconfiguration不适合dynamic(基于模板)的日志文件。 理查德·弗莱明提出的build议补丁如下:
--- /etc/rsyslog.conf.orig 2009-11-17 11:21:10.874573462 -0500 +++ /etc/rsyslog.conf 2009-11-17 12:45:15.604573200 -0500 @@ -42,9 +42,11 @@ $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 +$DirOwner syslog +$DirGroup adm $Umask 0022 $PrivDropToUser syslog -$PrivDropToGroup syslog +$PrivDropToGroup adm # # Include all config files in /etc/rsyslog.d/
有关更多信息,请参阅: https : //bugs.launchpad.net/ubuntu/+source/rsyslog/+bug/484336
我遇到了这个奇怪的问题,我的解决scheme更简单(线程归结为权限问题)…因为状态文件不包含任何敏感信息:
chmod 777 /var/lib/rsyslog
然后重新启动rsyslog几次。
免责声明 :我知道这是不好的做法,给每个人一个目录的一切,这个解决方法是有点傻,但在这种情况下,与rsyslog错误的原因不明,我不得不作出例外,因为该文件夹是专门用于rsyslog的状态文件。 请注意,我尝试了其他chown设置授予权限rsyslog有效用户没有成功,因此这个愚蠢的解决方法。