Fluentd - 使用日志文件名中数据内部的变量
Fluentd - Use variable from inside the data in logfile-name
我对 fluentd 还很陌生,我不确定它是否可以做我现在正在尝试的事情。我正在使用它从同一主机上的一大堆 Docker-容器 运行 中收集日志数据,因此经常讨论的 "hostname"-变量对我没有帮助。相反,我收到的日志数据包含一个字段 "container_name"。
现在我想要的是让 Fluentd 写入名称为 "container_name-id_timestamp" 的日志文件,但到目前为止我尝试过的方法 none 已经奏效。我不知道如何评估数据包中的字段。
我继续像这样匹配所有内容:
<match *.**>
type file
path /var/log/fluent/
time_slice_format %Y-%m-%d
time_slice_wait 10m
time_format %Y-%m-%dT-%H-%M-%S-%z
</match>
然后尝试了各种变量,比如
path /var/log/fluent/${container_name}_%Y-%m-%d
或
path /var/log/fluent/${tag_parts[2]}_%Y-%m-%d
但不是解释它而是字面意思。我错过了什么?
我也可以为每个容器设置子文件夹,我遇到了同样的问题。
谢谢。
任何来这里寻找解决方案的人,我已经找到了解决方法:
<match docker.*>
type rewrite_tag_filter
rewriterule1 container_name ^\/(.*)$ tagged.
</match>
<match tagged.*>
type forest
subtype file
remove_prefix service
<template>
time_slice_format %Y-%m-%d
path /var/log/fluentd/${tag}.*.log
</template>
</match>
发生了什么事?
- 寻找匹配项,即 docker.325435abcd-tag
- 使用 fluent_plugin_rewrite_tag_filter 从数据中获取 container_name
- 用 container_name
重写标签
- 匹配标记数据
- 使用 forest_plugin 模板化日志文件名以使用标签
- 完成
我对 fluentd 还很陌生,我不确定它是否可以做我现在正在尝试的事情。我正在使用它从同一主机上的一大堆 Docker-容器 运行 中收集日志数据,因此经常讨论的 "hostname"-变量对我没有帮助。相反,我收到的日志数据包含一个字段 "container_name"。 现在我想要的是让 Fluentd 写入名称为 "container_name-id_timestamp" 的日志文件,但到目前为止我尝试过的方法 none 已经奏效。我不知道如何评估数据包中的字段。
我继续像这样匹配所有内容:
<match *.**>
type file
path /var/log/fluent/
time_slice_format %Y-%m-%d
time_slice_wait 10m
time_format %Y-%m-%dT-%H-%M-%S-%z
</match>
然后尝试了各种变量,比如
path /var/log/fluent/${container_name}_%Y-%m-%d
或
path /var/log/fluent/${tag_parts[2]}_%Y-%m-%d
但不是解释它而是字面意思。我错过了什么? 我也可以为每个容器设置子文件夹,我遇到了同样的问题。
谢谢。
任何来这里寻找解决方案的人,我已经找到了解决方法:
<match docker.*>
type rewrite_tag_filter
rewriterule1 container_name ^\/(.*)$ tagged.
</match>
<match tagged.*>
type forest
subtype file
remove_prefix service
<template>
time_slice_format %Y-%m-%d
path /var/log/fluentd/${tag}.*.log
</template>
</match>
发生了什么事?
- 寻找匹配项,即 docker.325435abcd-tag
- 使用 fluent_plugin_rewrite_tag_filter 从数据中获取 container_name
- 用 container_name 重写标签
- 匹配标记数据
- 使用 forest_plugin 模板化日志文件名以使用标签
- 完成