2012-08-01 116 views
3

我想我的Heroku的日志发送到远程Linux机器,并让他们过滤到在/ var自己单独的文件/日志/如何设置rsyslog来过滤通过漏洞发送的heroku日志?

在Heroku的一边,我发出这样的命令:

heroku drains:add syslog://my_linux_ip:514 

在我的Ubuntu机器,我编辑/etc/rsyslog.conf和注释掉这些行:

# provides TCP syslog reception 
$ModLoad imtcp 
$InputTCPServerRun 514 

现在我看到的Heroku在的/ var /日志/ MESSA日志输出GES

它被加上主机名d.d423cb4b .......

我如何获得所有Heroku的消息在的/ var /日志/ Heroku的收集?

回答

4

只需将此行添加到您的rsyslog.conf

if $hostname startswith 'd.d423cb4b' then /var/log/heroku 
& ~ 

显然,你需要与你在自己的日志中观察到的实际主机名匹配d.d423cb4b

&〜 line指示rsyslog不在其他任何日志中复制此输出。所以,你应该在/ var/log/heroku和其他地方看到你的输出。

+1

作品!我必须将这些行放在GLOBAL DIRECTIVES部分之前,以便它们不会被复制。 – odedfos 2014-10-18 16:52:07

-1

你可以依据使用这些enteries来郝晓红其日志DYNOS

赛道ID - d.2a2f9970-dc14-43d8-b893-26a70293c437

hostname, contains, "d.2a2f9970-dc14-43d8-b893-26a70293c437" /var/log/heroku/appname/appname_all.log 
if ($hostname contains 'd.2a2f9970-dc14-43d8-b893-26a70293c437' and $syslogtag contains 'heroku[web.1]') then /var/log/heroku/appname/appname_Memory_cpu_dyno1.log 
if ($hostname contains 'd.2a2f9970-dc14-43d8-b893-26a70293c437' and $syslogtag contains 'heroku[web.2]') then /var/log/heroku/appname/appname_Memory_cpu_dyno2.log 
if ($hostname contains 'd.2a2f9970-dc14-43d8-b893-26a70293c437' and $syslogtag contains 'heroku[web.3]') then /var/log/heroku/appname/appname_Memory_cpu_dyno3.log 
if ($hostname contains 'd.2a2f9970-dc14-43d8-b893-26a70293c437' and $syslogtag contains 'heroku[web.4]') then /var/log/heroku/appname/appname_Memory_cpu_dyno4.log 
if ($hostname contains 'd.2a2f9970-dc14-43d8-b893-26a70293c437' and $syslogtag contains 'heroku[router]') then /var/log/heroku/appname/router_appname.log