我想让 httpd access_log 条目由两个不同的 logstash 过滤器处理。
其中之一是“聚合”过滤器,已知它只能与单个工作线程一起正常工作。但是,应该允许另一个过滤器(我们称之为“otherfilter”)与多个工作线程一起工作,这样就不会损失性能。
为此,我想使用 logstash 的“多管道”功能。基本上,一个管道应该读取数据(“输入管道”)并将其分发到两个上述过滤器在其上运行的另外两个管道(我们称它们为“聚合管道”和“其他过滤器管道”)。
第一个测试表明,如果输入管道设置为与多个线程一起工作,则聚合过滤器的结果不正确。也就是说,当以 60 秒的间隔聚合时,事件计数器有时会显示实际发生的更多事件,有时会显示更少的事件。问题似乎是事件在聚合过滤器中“未排序”到达,因此,间隔(其开始和结束是根据时间戳字段确定的)是不正确的。
所以我问自己,我想要实现的“多管道”是否完全可行?