在 CentOS 上正确配置 Rsyslog

在 CentOS 上正确配置 Rsyslog

我正在尝试在 CentOS 6.4 上配置 Rsyslog 5.8.10,以将 Apache 的错误和访问日志发送到远程服务器。它正在运行,但我有几个问题。

更新:仅 A、B 和 C 有待答案。

A) 我希望尽可能少地使用队列(和资源)。我将错误日志发送到服务器 A,将访问日志发送到服务器 A,将两个日志以一个流的形式发送到服务器 B。我应该指定每个外部服务一个队列(2 个队列)或每个流一个队列(我现在有 3 个队列)?这是我所拥有的:

$ActionResumeInterval 10
$ActionQueueSize 100000
$ActionQueueDiscardMark 97500
$ActionQueueHighWaterMark 80000
$ActionQueueType LinkedList
$ActionQueueFileName logglyaccessqueue
$ActionQueueCheckpointInterval 100
$ActionQueueMaxDiskSpace 1g
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on
$ActionQueueTimeoutEnqueue 10
$ActionQueueDiscardSeverity 0
if $syslogtag startswith 'www-access' then @@logs-01.loggly.com:514;logglyaccess

$ActionResumeInterval 10
$ActionQueueSize 100000
$ActionQueueDiscardMark 97500
$ActionQueueHighWaterMark 80000
$ActionQueueType LinkedList
$ActionQueueFileName logglyerrorsqueue
$ActionQueueCheckpointInterval 100
$ActionQueueMaxDiskSpace 1g
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on
$ActionQueueTimeoutEnqueue 10
$ActionQueueDiscardSeverity 0
if $syslogtag startswith 'www-errors' then @@logs-01.loggly.com:514;logglyerrors

$DefaultNetstreamDriverCAFile /etc/syslog.papertrail.crt # trust these CAs
$ActionSendStreamDriver gtls # use gtls netstream driver
$ActionSendStreamDriverMode 1 # require TLS
$ActionSendStreamDriverAuthMode x509/name # authenticate by hostname
$ActionResumeInterval 10
$ActionQueueSize 100000
$ActionQueueDiscardMark 97500
$ActionQueueHighWaterMark 80000
$ActionQueueType LinkedList
$ActionQueueFileName papertrailqueue
$ActionQueueCheckpointInterval 100
$ActionQueueMaxDiskSpace 1g
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on
$ActionQueueTimeoutEnqueue 10
$ActionQueueDiscardSeverity 0
*.* @@logs.papertrailapp.com:XXXXX;papertrailstandard & ~

B) 是否队列块send被随后的每一个动作反复使用或者仅限第一个或者直到它遇到一个,send后面跟着一个放弃行动(〜)?

C)如何重置队列块因此即将到来的发送动作根本不使用队列?

D)TLS 阻止send被随后的每一个动作反复使用或者仅限第一个或者直到它遇到一个,send后面跟着一个放弃行动(〜)?

E)如何重置TLS 阻止因此即将到来的发送动作根本不使用 TLS?

F)如果我跑步rsyslog -N1我会得到:

rsyslogd -N1
rsyslogd: version 5.8.10, config validation run (level 1), master config /etc/rsyslog.conf
rsyslogd: WARNING: rsyslogd is running in compatibility mode. Automatically generated config directives may interfer with your rsyslog.conf settings. We suggest upgrading your config and adding -c5 as the first rsyslogd option.
rsyslogd: Warning: backward compatibility layer added to following directive to rsyslog.conf: ModLoad immark
rsyslogd: Warning: backward compatibility layer added to following directive to rsyslog.conf: MarkMessagePeriod 1200
rsyslogd: Warning: backward compatibility layer added to following directive to rsyslog.conf: ModLoad imuxsock
rsyslogd: End of config validation run. Bye.

我应该将 -c5 放在哪里以便它不再以兼容模式运行?

答案1

只需填写我知道的

D) 是的,对于所有后续问题,除非调用 E)。

E)在下:omusrmsg:0一次发送之前($ActionSendStreamDriverMode 0已弃用)

答案2

回复:'-c5' 的位置 - CentOS 使用 /etc/sysconfig/rsyslog 作为 rsyslog 启动参数的配置文件,因此您需要将 '-c5' 作为第一个参数添加到 SYSLOGD_OPTIONS= 行,即

SYSLOGD_OPTIONS="-c5"

很抱歉没有回答您提出的所有其他问题。我认为如果您单独提出这些问题会更好,因为按照目前的形式,回答您问题中的每个问题需要花费大量时间。

相关内容