rsyslog 似乎按照旧配置运行

rsyslog 似乎按照旧配置运行

我正在使用模板动态生成 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,使用 删除了所有日志文件rm -rf /var/log/remote/*,然后使用 重新启动了 rsyslogd service rsyslog start

问题是 rsyslog 似乎正在构建该类型的文件夹结构"/var/log/remote/%hostname%/%$year%/%$month%/%$day%.log"(即没有远程 IP),而该文件夹结构不再出现在我的配置中的任何地方。

是否有可能旧日志或配置数据已被缓存在某处,并在服务器重启后得以保留?这让我有点害怕。

答案1

修复后该问题自行解决相关问题我在使用 rsyslog 时遇到了这个问题。我不确定这有什么关系,但如果 rsyslog 在打开动态日志文件时遇到问题,那么它似乎在过去的配置方面存在一些不稳定的行为。无论如何,以下是我的解决方案的重印:

检查服务器的 /var/log/syslog 后,我发现 rsyslog 在打开动态文件时遇到了问题。事实证明,Ubuntu 10.04 LTS 中 rsyslog 的默认配置不适合动态(基于模板)日志文件。Richard Fleming 建议的补丁如下:

--- /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/

有关详细信息,请参阅:For more information, see:https://bugs.launchpad.net/ubuntu/+source/rsyslog/+bug/484336

答案2

我遇到了同样奇怪的问题,我的解决方案更简单(线程归结为权限问题)......因为状态文件不包含任何敏感信息:

chmod 777 /var/lib/rsyslog

然后重新启动 rsyslog 几次。

免责声明:我知道把所有东西都放在一个目录中不是一个好习惯,而且这种解决方法有点愚蠢,但在这种情况下,由于 rsyslog 错误的原因不明,我不得不破例,因为该文件夹专门用于存放状态文件对于 rsyslog。请注意,我尝试了其他chown设置来向 rsyslog 有效用户授予权限,但没有成功,因此采用这种愚蠢的解决方法。

相关内容