如何检查 syslog-ng 配置中的平台?

如何检查 syslog-ng 配置中的平台?

我在多个平台上使用默认的 syslog-ng/etc/syslog-ng/syslog-ng.conf以及一个独立的/etc/syslog-ng/conf.d/myconfig.conf

在那个特定的配置中我想重复使用s_srcsyslog-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();
};

相关内容