Redhat
rsyslog 重啟後不寫日誌文件
首先,感謝您花時間查看這個問題,非常感謝。
我已經讓附加的 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
提前致謝 :)
您正在為日誌文件使用自定義路徑,因此 selinux 阻止了您。嘗試發出
setenforce 0
並重新啟動 rsyslog。如果它現在可以工作,則確認您的問題是 selinux。要在繼續使用 selinux 的同時永久糾正該問題,您需要發出
semanage fcontext -a -t var_log_t '/opt/rsyslog(/.*)?'; restorecon -RF /opt/rsyslog
之後,重新啟動 rsyslog。