使用一定的过滤器转发消息

使用一定的过滤器转发消息

场景是接收所有传入消息并将所有这些消息存储在 中/app/syslog-ng/custom/output/all_devices.log,但仅转发某些消息(通过过滤)。

filter标签用于过滤传入 Syslog-NG 的消息,在这种情况下,这不是正确的用法。例如:filter f_warn { level(warn); };


编辑:

我当前的配置是:

@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);
};

将所有消息存储在 中后all_devices.log,Syslog-NG 是否提供语法(配置)以仅将某些消息(过滤后)转发到远程日志服务器?

答案1

您可以在配置文件中组合多个指令。

例如,根据您的代码,您定义一个过滤器:

filter f_warn { level(warn); };

然后是目的地:

destination remote_log_server {
 udp("192.168.0.20" port(25214));
};

并将它们放在一起,例如:

log { source(src); filter(f_warn); destination(remote_log_server); };

显然,您必须根据您的需要配置您的source,filter和。destination

我建议你好好阅读官方手册,因为有地段自定义日志记录的选项。

相关内容