Rsyslog 无法在 CentOS7 上创建日志文件

Rsyslog 无法在 CentOS7 上创建日志文件

我在“/etc/rsyslog.d/10-my.conf”中有以下配置文件

# This file is managed by Puppet, changes may be overwritten
if $programname == 'hello' then -/var/log/test/test.log
& ~

在 CentOS6.5 上 (rsyslog5.8.10)这将创建一个空文件/var/log/测试/测试.log CentOS7 上的配置文件相同(rsyslog7.4.7) 不会创建空文件。
有人能说出这是为什么吗?此行为在 7.4 中是否发生了变化?还是我的 CentOS7 实例上有什么问题?
rsyslogd -f/etc/rsyslog.d/10-my.conf -N3
在 CentOS6 和 CentOS7 上返回一大堆警告,但没有什么严重的警告。CentOS7
SELinux 设置为 Permissive 模式
CentOS 7 (/etc/rsyslog.conf)

# file is managed by puppet
#################
#### MODULES ####
#################

$ModLoad imuxsock # provides support for local system logging
$ModLoad imjournal # provides access to the systemd journal   

###########################
#### GLOBAL DIRECTIVES ####
###########################
$MaxMessageSize 2k

#
# Set the default permissions for all log files.
#
$FileOwner root
$FileGroup root
$FileCreateMode 0600
$DirOwner root
$DirGroup root
$DirCreateMode 0750
$PrivDropToUser root
$PrivDropToGroup root
$WorkDirectory /var/lib/rsyslog
$Umask 0000

# Turn off message reception via local log socket;
# local messages are retrieved through imjournal now.
$OmitLocalLogging on

$IncludeConfig /etc/rsyslog.d/*.conf

#
# Emergencies are sent to everybody logged in.
#
*.emerg :omusrmsg:*

答案1

正如预期的那样,事实证明默认行为在 7.4 中发生了变化,它不再创建空文件,但是,如果使用以下命令进行测试,则可以正常工作(例如,创建 test.log 文件):

logger -t hello "Test"

版本 5.8 确实会创建一个空文件,但如果删除此文件(/var/log/test/test.log),仍然可以正常工作。

相关内容