Amazon Linux rsyslogconfiguration覆盖

我正在使用Amazon Linux AMI版本2015.03,我试图通过在/etc/rsyslog.d中删除configuration文件来configurationrsyslog,以将日志redirect到远程日志logging服务器(在本例中为logstash)。

远程日志loggingconfiguration似乎工作正常,但日志仍然写入/ var / log / messages。 这是一个问题,因为他们正在填满磁盘。

我的conf文件看起来像这样:

# Log docker generated log messages to logstash :syslogtag, startswith, "docker" @xxxx:5000 & ~ 

经过对其他一些系统的调查之后,我发现Amazon Linux中默认存在的rsyslog.conf文件在conf文件的最后包含了这个指令:

 $IncludeConfig /etc/rsyslog.d/*.conf 

我使用的其他系统在configuration文件中有更高的指令。绝对在默认的日志configuration之前。 在我看来,默认值不能被覆盖,因为这个。 我错过了什么吗?

在我看来,默认值不能被覆盖,因为这个。 我错过了什么吗?

不要把它看作是压倒一切的违约,但你是正确的。 在您的文件中, & ~将丢弃日志消息以防止进一步处理。 如果这发生在/var/log/messages的内置处理之上,则日志消息将被删除,从而被排除在该文件之外。 由于您的$IncludeConfig发生之后,您的drop语句也是如此。

你有两个select,

  1. 向上移动$IncludeConfig语句。
  2. 修复日志旋转,使您的磁盘不填充。

我个人更喜欢后者,因为我喜欢在本地保存日志(一段合理的时间),并将它们转发到远程服务器进行聚合/保留。 在/var/log/messages messages中提供/var/log/messages将使故障排除更加方便,同时也使得使用系统的其他人更容易,因为这是预期的位置 。