我在多个平台上使用默认的 syslog-ng/etc/syslog-ng/syslog-ng.conf
以及一个独立的/etc/syslog-ng/conf.d/myconfig.conf
在那个特定的配置中我想重复使用s_src
,syslog-ng.conf
在那里定义为
source s_src {
system();
internal();
};
不幸的是,有两个问题使我的配置变得复杂:
s_src
是 Debian 上的默认名称,s_sys
在 CentOS 上也是(对于同一源)internal()
在配置中不可能有两次作为源(syslog-ng
日志显示Multiple internal() sources were detected, this is not possible;
)
由于这一差异,我目前只能管理两组相同的配置文件。因此:
- 是否可以根据平台有条件地使用一个或另一个来源(不幸的是,平台不是变量的一部分
ENV
)? - 或者可能存在“软故障”——即使得 syslog-ng 在发生错误时不会停止解析配置文件?(在这种情况下,我只需要有两个
log
包含两个源的条目,其中一个对于给定平台始终会失败)
答案1
可以重置源并internal()
再次使用以下命令重新创建公共源:
@define allow-config-dups 1
source s_src {};
source s_sys {};
source s_common {
system();
internal();
};