syslog-ng 根据频率过滤日志到目标文件

syslog-ng 根据频率过滤日志到目标文件

我有一个 syslog-ng,它接收了太多日志,我正在尝试使用某种过滤器对它们进行“采样”。我假设使用类似 log { source(s_udp514); filter(every XXmin); destination(d_udp514); }; 的内容编辑 /etc/syslog-ng/syslog-ng.conf

过滤器(每 15 分钟)将仅在 XX 分钟内写入目的地。你知道我该如何实现吗?

答案1

过滤modulate()器允许您指定时间间隔,并且只允许消息以特定的间隔通过。

例子:

source s_udp514 {
    # Your source configuration here
};

filter f_modulate {
    modulate(interval 15m);
};

destination d_udp514 {
    # Your destination configuration here
};

log {
    source(s_udp514);
    filter(f_modulate);
    destination(d_udp514);
};

在此示例中,modulate()过滤器配置了 15 分钟间隔。日志语句使用s_udp514 source,应用f_modulate过滤器,并将过滤后的消息发送到d_udp514目标。

答案2

可以通过根据时间宏的值(例如${R_MIN}${R_HOUR}或 )进行过滤来实现类似的目的${R_UNIXTIME}

相关内容