Logstash聚合泊坞日志(以修复多行问题)

时间:2018-01-04 11:04:25

标签: docker logstash docker-swarm logstash-configuration gelf

我有从不同容器进入logstash的logentries。每个logentry包含一个字段ContainerID和一个字段Message。我认为具有相同ContainerID的任何消息都是正确排序的。

我想将多个logentries的消息内容与以下相同的containerId合并:

  1. PREFIX |字符串1
  2. 字符串2
  3. STRING3
  4. PREFIX |串,4
  5. 所以我最终得到了logentries:

    1. PREFIX | String1 \ n String2 \ n String 3
    2. PREFIX |串,4
    3. 可以使用logstash aggregate filter plugin吗?

      完成此操作

      具体来说,如果从上面收到1,2,3,3和4之间收到不同containerID的邮件会有问题吗?

      背景

      我有多个docker容器生成日志条目,这些日志条目使用docker gelf日志驱动程序从多个docker deamons(在一个swarm中)发送到logstash。

      所有这些工作和logstash接收并过滤了logentries。

      Docker将每一行视为一个单独的logentry并将其转发给logstash。在多线条的情况下,这是一个问题。我想将与一条多行消息相对应的许多logentries“合并”为一个。我知道什么时候“逻辑”logentry结束,因为下一个条目将从PREFIX开始,这就是为什么我建议上面的解决方案。

1 个答案:

答案 0 :(得分:1)

我建议使用Filebeat。它具有多线支持,在最新版本中,您可以使用Docker的自动发现功能。

我建议您阅读以下讨论:https://github.com/elastic/beats/issues/918