来自 rsyslog 的远程日志出现在通用日志文件中

来自 rsyslog 的远程日志出现在通用日志文件中

我已经设置了 rsyslog(根据指南像这样)通过以下常规配置来提取远程日志:

module(load="imudp")
input(type="imudp" port="514")

module(load="imtcp")
input(type="imtcp" port="514")

module(load="imklog" permitnonkernelfacility="on")

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

$RepeatedMsgReduction on

$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog

$WorkDirectory /var/spool/rsyslog

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

此外,我还创建了包含以下内容的文件/etc/rsyslog.d/remote.conf

$template RemoteLogs,"/mnt/monitoring-logs/logs/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs

$template HostAudit, "/mnt/monitoring-logs/logs/%HOSTNAME%/audit.log"
local6.* ?HostAudit

& ~

它可以创建相应的主机名目录和特定日志。但是,我还看到本地主机的日志文件(在 中/var/log)中重复了所有日志。例如,/var/log/syslog不仅包含来自监控服务器主机的消息,还包含所有其他远程主机的消息。

我该如何防止这种重复?我只希望看到来自主机本身的消息被记录到默认日志文件中。

我想我需要一些方法来停止转发这些特定的远程日志。看看文档(我从链接中找到这个问题)我注意到有一种方法可以添加规则集,因此我将我的常规配置更改为:

ruleset(name="remote") {
  action(type="omfile" file="/mnt/monitoring-logs/logs/%HOSTNAME%/%PROGRAMNAME%.log")
  stop
}

# ...

input(type="imudp" port="514" ruleset="remote")
input(type="imtcp" port="514" ruleset="remote")

这使得它停止将远程日志提取到通用日志文件,但也使其停止将输出写入专用/mnt/monitoring-logs文件夹。

答案1

我能够通过两者的结合来解决这个问题。最终的完整配置如下:

ruleset(name="remote") {
  $template RemoteLogs,"/mnt/monitoring-logs/logs/%HOSTNAME%/%PROGRAMNAME%.log"
  *.* ?RemoteLogs

  $template HostAudit, "/mnt/monitoring-logs/logs/%HOSTNAME%/audit.log"
  local6.* ?HostAudit

  stop
}

module(load="imudp")
input(type="imudp" port="514" ruleset="remote")

module(load="imtcp")
input(type="imtcp" port="514" ruleset="remote")

module(load="imklog" permitnonkernelfacility="on")

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

$RepeatedMsgReduction on

$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog

$WorkDirectory /var/spool/rsyslog

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

remote.conf请注意,文件夹中现在没有特定的文件/etc/rsyslog.d/

相关内容