Redhat

rsyslog 重啟後不寫日誌文件

  • May 4, 2015

首先,感謝您花時間查看這個問題,非常感謝。

我已經讓附加的 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。

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