Logging
rsyslog relp - 防止遠端日誌被寫入我的本地 /var/log
我已經使用 rsyslog 和 relp 設置了一個日誌伺服器。就接收遠端日誌並將它們放入/var/spool/rsyslog 而言,它工作得很好。
我的問題是:這些消息中的大多數也出現在我的 /var/log/messages 文件中,它可以變得相當大,相當快。
我在日誌伺服器上的配置:
#### MODULES #### $ModLoad imuxsock # provides support for local system logging $ModLoad imklog # provides kernel logging support (previously done by rklogd) # RELP config $ModLoad imrelp $InputRELPServerRun 2514 #### GLOBAL DIRECTIVES #### # 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 files $WorkDirectory /var/spool/rsyslog # Include all config files in /etc/rsyslog.d/ $IncludeConfig /etc/rsyslog.d/*.conf # global templates # DONT CHANGE UNLESS YOU KNOW WHAT YOU ARE DOING $ActionFileDefaultTemplate RSYSLOG_ForwardFormat $template precise,"%syslogpriority% %syslogfacility% %timegenerated% %HOSTNAME% %syslogtag% %msg%\n" $ActionFileDefaultTemplate precise # This should place all remote log items into /var/spool/rsyslog $template RemoteHost,"/var/spool/rsyslog/%programname%.log" # My brain says: this prevents anything coming in from a remote host from # being written in /var/log/whatever - MY BRAIN LIES TO ME! if ($hostname != 'my.server.name') then ?RemoteHost &~
我對手冊頁的閱讀表明,主機名檢查和“與號波浪號”應該可以防止遠端內容污染我的日誌文件。
線索?
DISTRIB_DESCRIPTION=“Ubuntu 12.04.3 LTS”
您的 rsyslog 配置文件中必須有類似的內容
*.*;auth,authpriv.none -/var/log/syslog
如果您看一下,您正在將所有設施的所有嚴重性註冊到 syslog 文件,但 auth 和 authpriv 設施除外。
只需添加您不想記錄的設施,加上“無”嚴重性。即:本地6:
*.*;auth,authpriv.none;local6.none -/var/log/syslog
當然,修改配置文件後必須重新啟動或重新載入 rsyslog 守護程序。
希望這對使用複雜的 rsyslog 過濾器有幫助。