Amazon Linux rsyslog 配置覆盖

Amazon Linux rsyslog 配置覆盖

我正在使用 Amazon Linux AMI 版本 2015.03,我正在尝试通过在 /etc/rsyslog.d 中删除一个 conf 文件来配置 rsyslog 以将日志重定向到远程日志服务器(在本例中为 logstash)。

远程日志配置似乎运行良好,但日志仍然写入 /var/log/messages。这是一个问题,因为它们占满了磁盘。

我的配置文件如下所示:

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

在对其他一些系统进行调查后,我发现 Amazon Linux 中默认存在的 rsyslog.conf 文件在 conf 文件的最末尾包含以下指令:

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

我使用过的其他系统将此指令放在配置文件的更高位置……肯定在默认日志配置之前。在我看来,由于这个原因,默认配置无法被覆盖。我是不是漏掉了什么?

答案1

我觉得默认值无法被覆盖。我是不是漏掉了什么?

不要认为这是覆盖默认值,但您在其他方面是正确的。在您的文件中, 正在& ~丢弃日志消息,从而阻止进一步处理。如果这发生在 的内置处理之上/var/log/messages,则日志消息将被删除,从而从该文件中排除。由于您的$IncludeConfig发生在之后,因此您的 drop 语句也是如此。

你有两个选择;

  1. 将语句上移$IncludeConfig
  2. 修复日志轮换以使磁盘不会填满。

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

相关内容