rsyslogd:如何多次使用 $ModLoad imfile?

rsyslogd:如何多次使用 $ModLoad imfile?

我正在测试 Loggly.com,它使用 rsyslogd 来收集日志条目。Loggly 提供了生成配置文件的脚本。每个配置文件都以 开头$ModLoad imfile,但这似乎仅适用于第一个配置,后续配置将不包含在内并生成错误:

$ rsyslogd -N1
rsyslogd: version 8.16.0, config validation run (level 1), master config /etc/rsyslog.conf
rsyslogd: module 'imfile' already in this config, cannot be added  [v8.16.0 try http://www.rsyslog.com/e/2221 ]

其他一些 conf 系统允许你声明如下内容

if not imfile $ModLoad imfile

rsyslogd 有类似的东西吗?这是 Loggly 的一个非常明显的疏忽,还是(更可能是)我遗漏了什么?

仅供参考,这里是 rsyslogd 文件夹布局的一个示例:

crw@beta:/etc/rsyslog.d$ ls
20-ufw.conf  21-cloudinit.conf  21-filemonitoring-web-err.conf  21-nginx.conf  22-loggly.conf  50-default.conf

21-* 文件由 Loggly 脚本自动生成。

答案1

我不太熟悉loggly.com,但我熟悉 rsyslog。 中的所有 conf 文件/etc/rsyslog.d/都包含在/etc/rsyslog.conf文件中,该文件内容如下:

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

当 rsyslog 读取其配置时,它不会将配置文件当作单独的文件来读取。它们全部连接成一个输入流。如果这些文件是由 loggly 生成的,并且每个文件都有相同的$ModLoad行,我认为这是他们的疏忽。他们可能没有注意到,因为虽然它确实生成了这些错误日志,但它实际上并没有阻止 rsyslog 启动或运行。

最后,我不知道 rsyslog 中是否有可以与该$ModLoad变量配合使用的 if 语句。我建议删除这些多余的$ModLoad语句。或者,您可以选择忽略这些错误,因为它们是无害的。

相关内容