我想使用多个工作线程使用多个工作线程处理多行日志以提高性能,但多行过滤器不起作用: - https://github.com/elastic/logstash/pull/1591 - https://github.com/elastic/日志存储/问题/1590
目前的解决方案:
- 使用多个 logstash-forwarder 并将它们发送到不同的伐木工人端口(扩展性非常差:每个具有多行的日志文件的新 logstash-forwarder)
- 使用带有redis输出的额外logstash-receiver和从redis读取并使用一个工作线程的额外logstash索引器(https://groups.google.com/forum/#!msg/logstash-users/fUhulxmZ0Ek/HfGev7BOhCUJ)
- 作为一个黑客,我尝试进行类型检查,该类型检查可以在具有伐木工人输出的logstash输出部分中具有多行,并将它们重新发送到具有编解码器多行但它不处理它们的同一个logstash实例的不同伐木工人输入(不同端口)
- 我也可以使用读取事件的rabbitMQ,但是我应该在将多行发送到rabbitMQ之前合并多行(我应该怎么做?)
- rsyslog 也可以发送日志,但它需要特殊格式的多行日志,并且不适用于正则表达式(https://serverfault.com/questions/622035/how-do-i-configure-rsyslog-to-deal-with-mysql -slow-query-log-multi-line-messages )
显然这些都不是很好,那么有没有人对此有一个体面的解决方案?