Filebeat kafka 输出使用文件名作为键
Filebeat kafka output use filename as key
我想使用 filebeat 5.4.0 将日志发送到 kafka。我的日志都是docker容器日志,在/var/lib/docker/containers/*/${container_name}.log
,或者softlink在/var/log/containers/${appname}-${container_name}.log
.
我想将所有应用程序日志保存到kafka 中的一个主题。我的要求是:
- 确保来自同一个容器的日志到同一个分区
按顺序。
- 消息必须包含应用名称和出现的 container_name。
我面临两个问题。
- 如何从软件获取日志link?
- 如何从文件名中获取appname和container_name,并设置为output.kafka的key?
Beats 应该是轻量级的,如果你想做更多的过滤,那么这就是 logstash 的用途。您可以使用 filebeats+logstash+kafka
。在发送到 kafka 之前,使用 logstash 的 split filter。
您也可以在 filebeats 中使用 'type' 属性 来映射日志路径,如下所示
...
路径:
"/var/log/container/${appname}-${container_name}"
document_type: 日志
output.kafka:
...
键:'%{[type]}'
...
我想使用 filebeat 5.4.0 将日志发送到 kafka。我的日志都是docker容器日志,在/var/lib/docker/containers/*/${container_name}.log
,或者softlink在/var/log/containers/${appname}-${container_name}.log
.
我想将所有应用程序日志保存到kafka 中的一个主题。我的要求是:
- 确保来自同一个容器的日志到同一个分区 按顺序。
- 消息必须包含应用名称和出现的 container_name。
我面临两个问题。
- 如何从软件获取日志link?
- 如何从文件名中获取appname和container_name,并设置为output.kafka的key?
Beats 应该是轻量级的,如果你想做更多的过滤,那么这就是 logstash 的用途。您可以使用 filebeats+logstash+kafka
。在发送到 kafka 之前,使用 logstash 的 split filter。
您也可以在 filebeats 中使用 'type' 属性 来映射日志路径,如下所示
...
路径:
"/var/log/container/${appname}-${container_name}"
document_type: 日志 output.kafka: ... 键:'%{[type]}' ...