Linux

rsyslog over RELP 在 Ubuntu 18.04 上失敗

  • March 6, 2020

在 Ubuntu 18.04 和 rsyslogd 8.32 上,日誌在沒有 RELP 的情況下通過 tcp 正確發送,配置如下:

伺服器

$$ 192.168.1.201 $$ (/etc/rsyslog.conf):

module(load="imuxsock") # provides support for local system logging

$ModLoad imudp
$UDPServerRun 514

$ModLoad imtcp
$InputTCPServerRun 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

:programname, isequal, "example" {
   $template RemoteServer, "/var/log/remote/%FROMHOST-IP%/%HOSTNAME%/%SYSLOGFACILITY-TEXT%_%PROGRAMNAME%.log"
   *.* ?RemoteServer
   stop
}

客戶端(/etc/rsyslog.d/50-default.conf)

auth,authpriv.*         /var/log/auth.log
*.*;auth,authpriv.none      -/var/log/syslog
kern.*              -/var/log/kern.log
mail.*              -/var/log/mail.log

mail.err            /var/log/mail.err

module(load="imfile" mode="inotify")

input(type="imfile"
     File="/home/user/*.log"
     Tag="david"
     Ruleset="uprule"
     addMetadata="on"
     Facility="local0")

ruleset(name="uprule"){
   :syslogtag, isequal, "example" {
       :msg, contains, "HELLO" {
           local0.* /var/log/testlog_error.log
           local0.* @@192.168.1.201:514
       }
       stop
   }
}

當我嘗試實現 RELP 協議時,它不會將日誌發送到伺服器。

在客戶端載入 omrelp module(load="omrelp") 並編輯該local0.* @@192.168.1.201:514local0.* :omrelp:192.168.1.201:514

在伺服器上:

module(load="imrelp")
input(type="imrelp" port="514" ruleset="RemoteLogProcess")

ruleset(name="RemoteLogProcess") {
  #Actions with the message...
}

有什麼建議可以讓它發揮作用嗎?

謝謝!

如果沒有看到您在伺服器上使用的完整配置文件,我的第一個建議是確保您沒有在同一埠上傳入 imtcp 和 imrelp。由於它們都使用會導致問題的 TCP。

你檢查過日誌嗎?您收到任何錯誤消息嗎?您可以通過執行檢查這一點journalctl -r -u rsyslog

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