Heroku 中的 rsyslog 会创建空日志文件

Heroku 中的 rsyslog 会创建空日志文件

我正在将日志从 Heroku 应用程序发送到 rsyslog 服务器,但生成的日志文件似乎为空。用于接收远程消息的 rsyslog 配置如下:

$template RemoteDailyLog,"/var/log/remote/%hostname%/%$year%/%$month%/%$day%.log"
:fromhost-ip, !isequal, "127.0.0.1" -?RemoteDailyLog
& ~

我的完整 rsyslog 配置是可在此粘贴

此配置似乎可以正确创建目录。我看到 Heroku 应用程序的日志记录主机名(格式为“d.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”)出现在 rsyslog 主机上的 /var/log 中,这意味着日志消息已成功发送到日志记录守护程序,但生成的日志文件大小为零。

我猜测问题出在 rsyslog 而不是 Heroku,但我不确定下一步该查找哪里。

答案1

检查服务器的 /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

相关内容