根据来自的建议回答说的是:只需添加两台服务器并始终写入两台服务器是最简单的一种,
我们已经设置了系统日志-NG服务器开启两台机器接收相同的系统日志消息并存储all_devices.log
在两台计算机上(RHEL 7.x)。
以下是两台机器上的配置:
@version: 3.17
source s_network {
udp(
flags(syslog_protocol)
keep_hostname(yes)
keep_timestamp(yes)
use_dns(no)
use_fqdn(no)
);
};
destination d_all_logs {
file("/app/syslog-ng/custom/output/all_devices.log");
};
log {
source(s_network);
destination(d_all_logs);
};
更进一步,我们还希望根据过滤规则将系统日志消息转发给特定的消费者,如下所示:
log { source(s_network); filter(f_warn); destination(remote_log_server); };
但remote_log_server
每条消息都会收到两条消息,因为它们是转发同一消息的两个系统日志服务器。
Syslog-NG 配置是否允许将两条消息重复删除为一条系统日志消息?
答案1
Syslog-ng 不支持这一点。如果您需要通过两台服务器同时转发到第三台服务器并在那里进行重复数据删除,则需要使用一些其他或附加软件来执行重复数据删除。
在这种情况下,我会考虑您链接到的答案中的第三种选择 - 使用 haproxy 一次仅将系统日志消息转发到两个冗余服务器之一。