首先,感謝您花時間查看這個問題,非常感謝。
我已經將附加的 rsyslog.conf 配置運行了一段時間,直到今天,由於磁碟已滿,我不得不重新啟動 rsyslog。結果是 rsyslog 現在使用所有先前的權限(目前 root|root rw 測試安全性)記錄到新位置(在 .conf 檔案中更新)。
我面臨的問題是,無論我嘗試什麼,rsyslog 都不會輸出檔案。我已經運行了 tcpdump 並且仍在接收資料。符合條件(主機 IP 位址)不應更改,配置也未更改。
任何幫助,特別是我可以運行的調試命令將不勝感激。我寧願學習新的東西(例如 rsyslog),也不願卸載它並使用 syslog-ng 代替......這是配置:
### Modules
$ModLoad imtcp
$ModLoad imudp
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
### Set log file permissions
$FileOwner root
$FileGroup root
$FileCreateMode 0777
$DirCreateMode 0777
$Umask 0022
$PrivDropToUser root
$PrivDropToGroup root
### Listeners
# bind ruleset to tcp listener
$InputTCPServerBindRuleset remote
# and activate it:
$InputTCPServerRun 514
$InputUDPServerBindRuleset remote
$UDPServerRun 514
### Templates
#Format the message correctly
$template MsgFormat,"%msg%\n"
# log every host in its own directory
##$template TESTLOG,"/opt/rsyslog/var/log/test.log"
### Rulesets
# Local Logging
# N/A None required at this point in time
#
# Remote Logging
$RuleSet remote
#---MY MATCHING RULE---#
if ($fromhost-ip == "192.168.1.1") then ?TESTLOG
先謝謝了 :)
答案1
您正在為日誌檔案使用自訂路徑,因此 selinux 會封鎖您。嘗試發出setenforce 0
並重新啟動 rsyslog。如果現在可以運行,則可以確認您的問題是selinux。
要在繼續使用 selinux 的同時永久修正問題,您需要發出
semanage fcontext -a -t var_log_t '/opt/rsyslog(/.*)?'; restorecon -RF /opt/rsyslog
之後,重新啟動 rsyslog。