Syslog

在 CentOS 上正確配置 Rsyslog

  • May 14, 2018

我正在嘗試在 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 以便它不再以兼容模式執行?

填寫我知道的

D) 是的,對於所有以下的,除非 E) 被呼叫。

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

Re: ‘-c5’ 的放置位置 – CentOS 使用 /etc/sysconfig/rsyslog 作為 rsyslog 啟動參數的配置文件,因此您需要將 ‘-c5’ 作為第一個參數添加到 SYSLOGD_OPTIONS= 行,即

SYSLOGD_OPTIONS="-c5"

很抱歉沒有回答您提出的所有其他問題。我認為如果您將它們分開問會好得多,因為在目前形式下,需要相當長的時間來回答您問題中的每一個項目。

引用自:https://serverfault.com/questions/548525