我的 rsyslog.conf 文件中有一个包含指令,而 rsyslog 正在向其中附加数据!我不知道为什么。
我在 RHEL7.7 上运行 rsyslog 8.24:rsyslog-8.24.0-38.el7.x86_64,内核 3.10.0-1062.el7.x86_64
这些是我的 rsyslog.conf 中仅有的几行:
module(load="imuxsock"
SysSock.name="/run/systemd/journal/syslog")
module(load="imklog")
include(
file=/etc/rsyslog.d/listen.conf
)
listen.conf 文件仅包含注释:
#Here is a comment
#and another
一旦我启动 rsyslogd,日志数据就会被转储到该文件中!如果我更改名称,就会创建一个同名的文件。
数据被放入其中,而不是我的/var/log/messages
文件中。如果我将包含的内容更改为:
include(
file="/etc/rsyslog.d/listen.conf"
)
listen.conf"
rsyslog 将在 /etc/rsyslog.d 目录中创建一个名为的文件。如果我这样做:
include(
file="/etc/rsyslog.d/*.conf"
)
然后我会得到一个名为的文件*.conf"
我完全糊涂了。这个include
指令没有包含任何内容。我遗漏了什么?
答案1
这包括()对象仅从版本 8.33 开始实现,因此该file=
行可能被解释为某种筛选选择器,并输出到文件。您应该坚持使用$IncludeConfig
您的版本。
始终通过运行来检查语法错误消息rsyslogd -N 1
,如果没有显示错误但是仍然有问题,则可以使用-d
(添加-n
到前台运行)进行非常详细的调试。