如何將非預設日誌文件發送到遠端 rsyslog 伺服器?
是的,我看到你想將此標記為重複,我很感激,但請閱讀到最後。
我已經在幾個地方找到了這個問題,答案要麼太模糊,對於 rsyslog 的菜鳥來說無法理解……就像這樣
Waaay 太難了,不可能是一種易於理解的方式來做我想做的事情……就像這樣
或者非常接近我正在尋找的東西,但不完全……像這樣
無論如何,針對具體問題。
伺服器 X = 集中式系統日誌伺服器,執行 rsyslog。
伺服器 Y = 執行Redmine的伺服器
我已經將Y配置為將預設日誌文件發送到X。我使用了這些說明,並結合了其他一些說明。
X /etc/rsyslog.conf :
# /etc/rsyslog.conf Configuration file for rsyslog. # # For more information see # /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html # # Default logging rules can be found in /etc/rsyslog.d/50-default.conf ################# #### MODULES #### ################# $ModLoad imuxsock # provides support for local system logging $ModLoad imklog # provides kernel logging support #$ModLoad immark # provides --MARK-- message capability # provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 # provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514 # This one is the template to generate the log filename dynamically, depending on the client's IP address. $template FILENAME,"/var/log/logs/%fromhost-ip%/syslog.log" # Log all messages to the dynamically formed file. Now each clients log (192.168.1.2, 192.168.1.3,etc...), wil l be under a separate directory which is formed by the template FILENAME. *.* ?FILENAME # Enable non-kernel facility klog messages $KLogPermitNonKernelFacility on ########################### #### GLOBAL DIRECTIVES #### ########################### # # Use traditional timestamp format. # To enable high precision timestamps, comment out the following line. # $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat # Filter duplicated messages $RepeatedMsgReduction on # # Set the default permissions for all log files. # $FileOwner syslog $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022 $PrivDropToUser syslog $PrivDropToGroup syslog # # Where to place spool and state files # $WorkDirectory /var/spool/rsyslog # # Include all config files in /etc/rsyslog.d/ # $IncludeConfig /etc/rsyslog.d/*.conf
如您所見,發送到X的日誌被放入以它們來自的 IP 地址命名的目錄中。
和 /etc/rsyslog.d/10-rsyslog.conf
*.* @192.168.1.X:514
這一切都有效,我得到了一切都很好。
我想做的是將位於的 redmine.access.log 文件
/var/log/apache2/redmine.access.log
也發送到系統日誌伺服器X就像我說的,我已經閱讀了很多關於此的內容。我只是不關注它,我需要一個更簡單的例子。
我想將日誌文件保留在X和Y上,因此將它們直接管道傳輸到任何地方,這不是我想要的。
我發現看起來最簡單,我幾乎可以遵循的說明是這些。問題在於,沒有任何東西真正得到解釋,我真的很想了解它是如何工作的。
我不在乎 redmine.access.log 是否與 syslog 的東西一起被拋出(儘管我更希望它沒有),或者它是否被一起寫在其他地方(儘管顯然是在X上)。
如果有人可以寫出他們認為我應該做什麼,我會更新我的問題以使我的最終配置有效,因此希望其他菜鳥可以從我的愚蠢問題中受益。
編輯
此編輯是為了解釋為什麼這不是重複的。
這是重複的……我承認了。
但我真的很想看到這麼簡單的東西,有一個實際完整的例子。因此,如果它被標記為重複並被刪除,那很好,但我將在最後使用一個工作範例對其進行編輯。
您所做的就是在其中創建一個新的 conf 文件,
/etc/rsyslog.d/
然後用$Input[...]
指令填充它。例如$InputFileName /var/log/apache2/redmine.access.log $InputFileTag web.apache.access-combined.pro.whatever.yourface: $InputFileStateFile stat-file1-ApacheAccess $InputFileSeverity info $InputFileFacility local7 $InputFilePollInterval 1 $InputFilePersistStateInterval 1 $InputRunFileMonitor
為您想要的每個文件添加一個類似的塊。事實上,從技術上講,您不必創建新的 conf,只需添加到現有的。
但是,如果您正在尋找複製/粘貼解決方案,您可能會感到失望。最終,
rsyslog
這並不難弄清楚,所以你已經為你準備好了。這很好。