rsyslog 重启后不写入日志文件

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

先谢谢了 :)

答案1

您正在为日志文件使用自定义路径,因此 selinux 阻止了您。尝试发出setenforce 0并重新启动 rsyslog。如果现在可以正常工作,则确认您的问题出在 selinux 上。

要永久纠正继续使用 selinux 的问题,您需要发出

semanage fcontext -a -t var_log_t '/opt/rsyslog(/.*)?'; restorecon -RF /opt/rsyslog

之后,重新启动 rsyslog。

相关内容