我在EC2上运行Ubuntu 12.04.1 LTS。 我有一堆应用程序服务器被configuration为通过rsyslog将其日志转发到中央服务器。
由于对中央服务器上的日志文件进行了Nagios监视,因此我收到警报,指出特定应用程序服务器无法将日志转发到中央服务器。
login到计算机并重新启动rsyslog服务可以解决问题。 但是,rsyslog会再次重新传输日志,导致收集器上出现重复。 为什么这样做?
这个问题的日志传输方面的冻结似乎可能是由于一个错误的方式rsyslog的方式configuration'buntu: https ://bugs.launchpad.net/ubuntu/+source/rsyslog/+bug / 940030
我也能够在expertsexchange上find一个有趣的post:www.expert-sex-change.com/OS/Linux/Administration/Q_27511414.html:
>我最近遇到了一个问题,希望有人能帮我弄明白。 我是 >运行Ubuntu 10.04和rsyslog 5.8.1。 我设置rsyslog来监视几个文件并发送 >这些文件的任何更改Loggly(伟大的服务方式)。 那么,这一切工作 >伟大的,除了每当我重新启动rsyslog它重新发送这些事实 >过去发送的文件。 现在,我的理解是rsyslog应该使用 > $ WorkDirectory并创build你为$ InputFileStateFile设置的文件来保存 >监视的文件的状态,以便它不发送重复的条目。 > >这是我正在使用的一个例子: > > $ WorkDirectory / var / log / rsyslog > >#监视日志文件 > $ InputFileName /var/log/monit.log > $ InputFileTag监视 > $ InputFileStateFile监控状态 > $ InputFileSeverity信息 > $ InputRunFileMonitor > >所以,从我上面的描述中,rsyslog应该创build一个“monit-state”文件 >“/ var / log / rsyslog”会保存/var/log/monit.log文件的状态, >重复发送。 那是对的吗? 如果是这样,这不会发生! > >“/ var / log / rsyslog”的权限应该是什么? 我必须触摸“monit-state” >“/ var / log / rsyslog”(我已经试过了,什么也没有发生)?
有一个有趣的答案:
>好的,我find了这个网站(Trouble Shooting Rsyslog),并进行了交互式debugging >模式使用: > > rsyslogd -c5 -dn>日志文件 > 1: >全选 >在新窗口中打开 > > >我能够看到这实际上是一个权限问题。 我打开了权限 > 777为我的$ WorkDirectory,只是为了testing,和rsyslog确实创build了状态文件和 >一切按计划进行。 我将继续玩权限,以便它 >不是777(显然),但我想让任何可能有这个问题的人知道 >我怎么解决它。
我调整了/ var / spool / rsyslog的权限,归用户“syslog”所有。 我已经testing重复传输应用此更改后,它似乎已经解决了这个问题。 如果问题重新出现,或者我发现这个问题没有解决,我会回到这里,更新答案。
解:
$ sudo chown syslog /var/spool/rsyslog