场景是接收所有传入的消息并将所有这些消息存储在 中/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 是否提供语法(配置)以仅将某些消息(过滤后)转发到远程日志服务器?
您可以在配置文件中组合多个指令。
例如,根据您的代码,您定义一个过滤器:
然后是目的地:
并将它们与以下内容放在一起:
显然,您必须配置您的
source
,filter
并destination
根据您的需要。我建议您仔细阅读官方手册,因为有很多选项可以自定义您的日志记录。