我正在测试 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
语句。或者,您可以选择忽略这些错误,因为它们是无害的。