Log-Files

如何使用 rsyslog 將 /var/log 之外的特定日誌文件轉發到遠端伺服器?

  • August 17, 2017

如何將消息從特定日誌文件(例如/www/myapp/log/test.log客戶端)轉發rsyslog到遠端rsyslog伺服器?此日誌文件位於目錄之外/var/log

只需在 /etc/rsyslog.conf 中設置一個 imfile 規則

#/etc/rsyslog.conf
$ModLoad imfile
$InputFileName /data/mysql/error.log
$InputFileTag mysql-error
$InputFileStateFile stat-mysql-error
$InputFileSeverity error
$InputFileFacility local3
$InputRunFileMonitor
local3.* @@hostname:<portnumber>

這將監視一個文件並保存到 syslog 中的 local3 工具。然後您可以將所有數據從 local3 設備發送到您的遠端伺服器。您可能還希望將以下內容添加到您的 rsyslog conf(通常是 Ubuntu 上的 /etc/rsyslog.d/50-default.conf),以不將 local3 工具保存到 /var/log/syslog:

#/etc/rsyslog.d/50-default.conf
*.*;auth,authpriv.none,local1.none,local2.none,local3.none,local4.none,local5.none,local6.none          -/var/log/syslog

此外,我鼓勵閱讀以下 rsyslog 文件以獲得更高級的過濾:

  1. 屬性替換器
  2. 過濾條件

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