Filebeat kafka输出使用filename作为密钥

时间:2017-05-25 13:04:27

标签: apache-kafka filebeat

我想使用filebeat 5.4.0将日志发送到kafka。我的日志是/var/lib/docker/containers/*/${container_name}.log中的所有泊坞窗容器日志,/var/log/containers/${appname}-${container_name}.log中的软链接

我想将所有应用日志保存到kafka中的一个主题。我的要求是:

  1. 确保来自同一容器的日志转到同一分区 按顺序。
  2. msg必须包含appname和container_name。
  3. 我面临两个问题。

    1. 如何从软链接获取日志?
    2. 如何从文件名中获取appname和container_name,并设置为output.kafka的键?

1 个答案:

答案 0 :(得分:1)

Beats应该是轻量级的,如果你想进行更多的过滤,那就是logstash的用途。您可以使用filebeats+logstash+kafka。在发送到kafka之前,请使用logstash的拆分过滤器。 您还可以在filebeats中使用'type'属性来映射日志路径,如下所示 ... 路径:

  • "/var/log/container/${appname}-${container_name}"

    document_type:log output.kafka:     ...     键: '%{[类型]}' ...